麒麟桌面系统桌面环境介绍
1. X-Windows
X Windows System 简称 X 或者 X11 或者 X-windows 。X 系统为 C/S 结构,是由 X protocol、X server 和 X client 三部分组成。
-
X protocol:X server 与 X client 之间通信的一套协议。一个程序要运行并图形化显示就需要使用 X 协议 和 X server 通信。 X 协议支持目前常用的网络协议(如 TCP/IP 、DECnet 等),能在本地系统和网络实现这个协议。
-
X server:也称为显示管理器,是 X 系统的核心,主要负责接收来自输入设备(如键盘、鼠标等)的信息,并控制结果的屏幕显示(如分辨率、刷新率、颜色等)。X server 必须在 X client 的请求下才会进行响应,创建窗口,并在窗口中显示图形和文字等,是 X client 和硬件的中间层。
-
xorg.conf:X server 的主要配置文件,包含当前系统的硬件资源列表。 X server 根据这些硬件资源“组织”出基本的图形能力。
-
X session:X server 启动后一直到 X server关闭之间所有与 X 相关的动作都属于 X session 的内容,通常是由 Display Manager 进行管理。X session 开启要执行的操作可以在 /etc/X11/Xsession 和 /etc/X11/Xsession.d 下看到。其他的例如:Xsession.option、Xresource 等也都是执行的 X session 初始化过程。
-
显示管理器(Display Manager)
管理 X session 程序,例如:lightdm、gdm、kdm等。主要有三个作用:Xserver启动 ---- Xsession 初始化 ---- Xsession 管理。
- 窗口管理器(Window Manager)
用于提供统一的 GUI 组件(如窗口、外框、菜单、按钮等),使每个应用程序窗口尽量统一。在麒麟桌面系统上,V10 上使用 mutter 、 marco ;V10-SP1 上使用的是 ukui-kwin 。
- 图形化应用程序
各个需要图形化运行并显示的软件。
- 桌面环境
应用程序级别的封装,提供一系列的界面一致、操作方式一致的应用程序。在麒麟桌面系统上,V10 使用 mate , V10-SP1 使用 ukui 。
2. V10 和 V10-SP1 核心组件对比
V10(mate) | V10-SP1(ukui) | |
---|---|---|
文件管理器 | caja、caja-extensions | peony、peony-extensions |
控制面板 | kylin-control-center | ukui-control-center |
主题 | kylin-theme | ubuntukylin-theme |
登录 | ukui-greeter | ukui-greeter |
锁屏 | ukui-screensaver | ukui-screensaver |
任务栏 | mate-panel | ukui-panel |
开始菜单 | kylin-menu | ukui-menu |
多窗口、侧边栏 | ukui-window-switch、ukui-sidebar | |
会话管理器 | mate-session | ukui-session |
声音管理 | mate-media | ukui-media |
电源管理 | mate-power-manager | ukui-power-manager |
我的电脑 | kylin-computer-viewer |
3. LightDM
LightDM(Light Display Manager),是一个全新的、轻量的 Linux 桌面的 桌面显示管理器,而传统的 Ubuntu 用的 GNOME 桌面标准的 GDM 。
- 配置文件(依次读取):
/usr/share/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf
- 配置示例:
/usr/share/doc/lightdm/lightdm.conf.gz #文件中保存着所有可能的配置情况示例
- 日志文件:
/var/log/lightdm/
- 服务管理:
sudo systemctl start | stop | restart | status lightdm #启动 | 停止 | 重启 | 查看状态
sudo dpkg-reconfigure lighdm #重置lightdm服务配置
- 常用配置选项:
[Seat:*]
user-session=mate/ukui #默认会话
greeter-session=ukui-greeter #登录界面
allow-guest=true/false #是否允许游客登录
greeter-show-manual-login=true/false #是否显示登录按钮
greeter-hide-users=true/false #是否隐藏用户列表
autologin-user=username #设置用户自动登录
- 系统沟子(在 X server 和用户会话启动/关闭时自动做些事情):
[Seat:*]
display-setup-script=[command] #在 X server 启动后,欢迎界面启动前运行(如果命令执行出现错误,X server 会停止运行)。
display-stopped-script=[command] #在 X server 退出后运行
greeter-setup-script=[command] #在欢迎界面启动前运行(如果命令执行出现错误,欢迎界面将无法启动并导致lightdm退出)
session-setup-script=[command] #用户会话启动之前运行(如果命令执行出现错误,用户会话将不会启动)
session-cleanup-script=[command] #在欢迎界面或者用户会话退出之后运行
session-wrapper=[command] #该命令用于运行回话
greeter-wrapper=[command] #该命令用于运行欢迎界面,等同于 session-wrapper
- 常用配置选项:
[Greeter]
draw-user-background=true/false #是否使用用户背景(用户背景图片配置 /var/lib/AccountsService/users/username)
background=[FILE] #用户自定义背景图片
logo=[FILE] #logo图片
- V10-SP1 桌面开放 root 登录
kylin@kylin-vm:~$ sudo vim /usr/share/lightdm/lightdm.conf.d/95-ukui-greeter.conf
[Seat:*]
greeter-session=ukui-greeter
user-session=ukui
greeter-show-manual-login=true
kylin@kylin-vm:~$ sudo vim /usr/share/lightdm/lightdm.conf.d/50-disable-guest.conf
[Seat:*]
allow-guest=false
kylin@kylin-vm:~$ sudo systemctl restart lightdm
- 延迟登录
kylin@kylin-vm:~$ sudo cvim /usr/share/lightdm/lightdm.conf.d/95-ukui-greeter.conf
[Seat:*]
session-setup-script=sleep 20 #登录界面输入密码后等待20s后显示桌面
display-setup-script=sleep 20 #系统启动完成之后等待20s后显示登录界面
- 隐藏单个用户
root@kylin-vm:~# cd /var/lib/AccountsService/users/
root@kylin-vm:/var/lib/AccountsService/users# vim username
[User]
SystemAccount=false #默认为false,如需隐藏改成true
- 自动登录
#如果文件不存在,手动创建一个即可
kylin@kylin-vm:~$ sudo vim /etc/lightdm/lightdm.conf
kylin@kylin-vm:~$
#添加下面的配置项
[SeatDefaults]
autologin-user=username
kylin@kylin-vm:~$ sudo systemctl restart lightdm
kylin@kylin-vm:~$
- 免密登录
#将用户添加到nopasswdlogin组,xxx为用户名
sudo gpasswd -a xxxx nopasswdlogin
#查看是否添加成功
cat /etc/group grep nopass
#注销重新登录即可免密登录
4. 分辨率
- 查看分辨率,使用–verbose可显示更详细信息
xrandr/xrandr -q
- 设置分辨率
xranr --output eDP1 --mode 1920x1080
--output:指定显示器
--mode:指定(有效)的分辨率
--rate:指定刷新率
- 添加有效分辨率
使用cvt生成一个modeline
cvt 1280 1024 60
使用newmode创建一个mode,modeline参数就是上一步命令结果中modeline后的内容
xrandr --newmode "1280x1024 60.00 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsymnc +vsync
新建模式,将新模式添加至当前输出设备(若设置报错,则说明当前显示器不支持该分辨率)
xrandr --addmode eDP1 1280x1024 60.00
设置为当前分辨率
xrandr --output eDP1 --mode 1280x1024 60.00
若不确定添加的分辨率当前显示器是否支持,可以使用sleep 10的方式避免困在无分辨率,例如:
xrandr --output eDP1 --mode 1280x1024 60.00 && sleep 10 && xrandi --output eDP1 --mode 1920x1080
- 设置主屏
xrandr --auto --output eDP1 --primary # auto(可以自动启用关闭的屏幕) primary (设置主屏)
- 显示模式
复制模式
xrandr --auto --output eDP1 --pos 0x0 --mode 1920x1080 --output HDMI1 --same-as eDP1
扩展模式
xrandr --auto --output eDP1 --pos 0x0 --mode 1920x1080 --primary --output HDMI1 --mode 1024x768 --right-of eDP1
--left-of:主屏左侧
--above:主屏上方
--below:主屏下方
单屏模式
xranr --output eDP1 --pos 0x0 --mode 1920x1080 --primary --output VGA1 --off
自定义模式:
--rotate:屏幕旋转
--reflect:屏幕镜像
--scale:屏幕缩放
5. 远程方式
5.1. 字符界面
ssh username@remote_ip -p port
5.2. 图形化界面
- 桌面共享
软件名:vino
端口:5900
协议:vnc
客户端工具:麒麟系统自带远程工具
- VNC Server
软件名:tigervnc
端口:可自定义端口
协议:vnc
客户端工具:麒麟系统自带远程工具、tigervnc-client等。
- xrdp
软件名:xrdp
端口:3389
协议:rdp
客户端工具:麒麟系统自带远程工具、windows自带远程工具、rdesktop等。