searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Linux桌面环境

2023-03-28 01:31:51
149
0

0 前言

    Linux桌面环境琳琳琅满目,本文对其进行梳理和总结。

1 桌面环境

    可进入系统设置查看所用桌面环境,也可通过“XDG_CURRENT_DESKTOP”环境变量确认所用桌面环境的类型:

Linux发行版 XDG_CURRENT_DESKTOP DESKTOP_SESSION
Ubuntu 10.04 gnome
12.04 Unity ubuntu-2d
14.04 ubuntu
16.04
18.04 ubuntu:GNOME
20.04
22.04
Ubuntu MATE 22.04 mate  
Kubuntu 22.04 KDE  
openKylin 0.9.5 UKUI  
Ubuntu Kylin 22.04  
Deepin Community 20.8 Deepin  
UOS home 22  
UOS pro 20  

    下表是各Linux桌面环境的技术栈对比情况:

桌面 开源 图形库 发行版 显示服务器(协议) 显示管理器(登录) 窗口管理器
KDE Y Qt Kubuntu 22.04 x11 sddm KWin
MATE ? ? Ubuntu MATE 22.04 lightdm Metacity(Marco)
GNOME Y GTK Ubuntu 10.04 gdm
18.04 gdm3 GNOME Shell(Mutter)

20.04
22.04 wayland
UNITY ? 12.04 x11 lightdm Metacity(Marco)
14.04 Compiz
16.04
LXDE ? Lubuntu 18.04 Openbox
XFCE ? FreeBSD        
DDE Y Qt Deepin 20.8 x11 lightdm KWin
UOS home 22
UOS pro 20
UKUI openKylin 0.9.5 wayland ukui-kwin
UbuntuKylin 22.04 x11 ukwm(源自Mutter)

    通过可总结出以下几点:

  • UOS的图形技术栈和Deepin是一样的;
  • UOS/UbuntuKylin的显示服务器协议依然是x11,均未升级至最新的wayland,这点不如openKylin-0.9.5和Ubuntu-22.04。

2 显示服务器

2.1 协议

    可通过环境变量“XDG_SESSION_TYPE”来确认所用显示服务器协议类型:

Linux发行版 XDG_SESSION_TYPE 说明
Ubuntu 12.04  
14.04  
16.04 x11  
17.10 wayland  
18.04 x11  
20.04 默认x11,但可以安装并切换到Wayland
21.04 wayland  
22.04  
CentOS 7  
openKylin 0.9.5 wayland  
Lubuntu 18.04 x11  
Kubuntu 22.04  
UbuntuKylin 22.04  
Deepin Community 20.8  
UOS home 22  
UOS pro 20  

    可见,虽然说wayland是未来的趋势,但目前为止多数发行版用的依然是x11。

2.2 实现

    开源实现主要有XFree86X.Org,其中前者是先驱(1992年),后者由前者的4.4RC2版本衍生而来以规避许可证问题(2004年)[10],因此X.Org中存在大量XFree86源码。

3 显示管理器

    “显示管理器”又称“登录管理器”),通常是一个在启动过程结束时代替默认shell显示的图形用户界面,与“窗口管理器”和“桌面环境”类似,“显示管理器”也有很多实现[4],下表是一些流行的显示管理器:[7]

GDM GNOME显示管理器GNOME Display Manager,GNOME桌面环境的首选
SDDM 简单桌面显示管理器Simple Desktop Display Manager,KDE桌面环境的首选
lightDM 由Ubuntu为Unity桌面环境开发,但被广泛应用到其它桌面环境

    各Linux发行版均可通过下面方法查看所用的显示管理:

(1)方法1:适用于X11

cat /etc/X11/default-display-manager /usr/sbin/lightdm # [5] Ubuntu 14.04 22.04

(2)方法2:适用于X11和Wayland

cat /etc/systemd/system/display-manager.service # [6]

4 窗口管理器

    窗口管理器主要用于对窗口进行管理,其核心功能是移动窗口改变窗口大小图标化(最小化)窗口改变窗口层叠顺序,此外一般还附带如下功能:[11]
  • 标题栏:一般来说窗口管理器会对应用程序窗口加上标题栏,用以进行窗口的拖拽操作,其中还有最小化,最大化,关闭按钮,方便用户快捷的操作窗口。
  • 边框:窗口管理器还会对窗口边框进行处理,设计边框颜色和阴影效果来区分激活与非激活窗口;
  • 快捷键:大部分窗口管理器还提供了一些快捷键绑定,来实现窗口切换,工作区切换,显示桌面等功能;

    不同发现版所用窗口管理器有所不同,可通过下面方法查看:

(1)方法1

    可安装“wmctrl”工具,然后查看所用的窗口管理器:

sudo apt-get install -y wmctrl
export DISPLAY=:01 # ssh登录才需设置这个
wmctrl -m          # [8]

    其结果中的“Name”字段表示所用窗口管理器类型,总结如下:

Linux发行版 Name
Ubuntu 14.04 Compiz
20.04 GNOME Shell
22.04
Ubuntu Kylin 22.04 Ukwm
Ubuntu MATE 22.04 Metacity(Marco)
Kubuntu 22.04 KWin
Deepin 20.8
UOS home 22
UOS pro 20

(2)方法2

    Ubuntu12.04之前的版本均无法安装wmctrl,此时只能查看窗口管理器进程来确定所用的窗口管理器:

ps -ef | egrep -i "Metacity|Compiz"

参考资料

[1]X,X11,Xorg,XServer,XClient,Xlib

[2]Implementation needs for Android/Wayland graphics buffer sharing

[3]窗口管理器Linux用哪个,如何确定哪个窗口管理器正在运行

[4]Archlinux|显示管理器

[5]linux——显示管理器和桌面环境

[6]Archlinux|显示管理器

[7]聊聊Linux操作系统中的显示管理器及如何更换

[8]窗口管理器Linux用哪个,如何确定哪个窗口管理器正在运行

[9]X.Org Server

[10]XFree86(百度百科)

[11]UKUI 桌面环境之窗口管理器(UbuntuKylin官网)

0条评论
0 / 1000
李****海
14文章数
0粉丝数
李****海
14 文章 | 0 粉丝