XWayland开发入门系列0:说明

系列索引地址:X11/Wayland开发入门系列教程索引

XDG

x-desktop-group即X桌面工作组,现在更名为freedsektop,但是一些文件、软件包还是保留xdg的名字,比如:xdg-utils、xdg-open等。

它提供了一系列的标准给桌面系统使用,KDE/GNOME等等都使用这个标准。

窗口管理器

窗口管理器(window manager,简称WM)是图形用户界面的一部分。用户可以选择安装桌面环境,它们通常已经提供了完整的用户界面,包括图标、窗口、工具栏、壁纸和桌面部件。

X窗口系统提供基本的图形用户界面支持。使用桌面环境之前,必须首先安装X服务器。Xorg是这套系统的开源实现。

X为GUI环境提供基本的框架:在屏幕上描绘、体现图像与移动程序窗口,同时也受理、运行、及管理电脑与鼠标、键盘的交互程序。不过,X并没有管理到用户界面,而是由其他以X为基础的实现来负责。正因为如此,以X为基础环境所开发成的视觉样式非常地多,不同的程序可能有截然不同的接口体现。X作为系统内核之上的程序应用层发挥作用。

用户可以通过各种方法,自由配置GUI环境。

窗口管理器是提供窗口边框的X客户端,它控制图形程序的外观和行为方式:边框、标题栏、大小、以及调整大小等操作。很多窗口管理器还有其他功能,比如Window Maker提供了应用程序面板,Fluxbox提供窗口标签功能,此外还有启动程序的菜单、窗口管理器配置菜单等。

窗口管理器一般不提供额外的组件,比如图标之类的,它们一般由桌面环境提供。因此,窗口管理器通常不怎么耗费系统资源。

受欢迎的窗口管理器排名:https://www.slant.co/topics/390/~best-window-managers-for-linux

显示管理器 (Display Manager)

显示管理器或登录管理器是一个在启动最后显示的图形界面。和窗口管理器一样,显示管理器有很多种。通常每个显示管理器都能进行一些定制。

桌面环境 (Desktop Environment)

桌面环境通过汇集使用相同组件库的程序,为用户提供了完全的图形用户界面。

桌面环境结合X客户端,提供通用图形用户界面元素,如图标、工具栏、壁纸,桌面小部件。 大多数桌面环境包括提供一套整合的应用程序和实用工具。 最重要的是,桌面环境提供他们自己的 window manager, 但是通常被替换为另一个兼容的。

用户可以自由搭配不同桌面环境的程序,桌面环境只是提供一个完整的和方便的方法完成这项任务。请注意,用户可以自由地混合和匹配来自多个桌面环境中的应用。 例如,KDE 用户可以安装和运行 GNOME 应用程序如Epiphany web 浏览器,他/她宁愿在 KDE 的 Konqueror web 浏览器。 这种方法的一个缺点是,许多应用程序提供的桌面环境项目严重依赖其DE各自底层库。因此,从一系列桌面环境中安装应用程序将需要安装更多的依赖关系。用户为了节省磁盘空间,通常不会使用这样的混合环境,他们会考虑轻量级替代方案。

此外,桌面环境自带的程序,与该桌面环境整合最佳。从表面上看,混合环境中的部件工具包会造成视觉上的差异。(也就是说,接口将使用不同的图标和小部件样式)。 在用户体验方面,混合环境中的行为可能同样可能造成混乱或意外的行为。(例如单点击与双击图标;拖和拖放功能)

在安装桌面环境之前,X 服务器安装是必需的。详细信息,请参阅 Xorg。

桌面环境是安装完整图形环境的最简单的方法。但是,如果主流桌面环境并不能满足用户的需求,那么用户也可以通过多种方法来构建和定制他们自己的图形环境。通常,构建一个自定义的环境包括选择一个合适的窗口管理器,一个任务栏以及一些应用程序(一个极简的应用程序选择方案至少包括一个终端模拟器(terminal emulator),文件管理器(file manager)和文本编辑器(text editor))。

通常由桌面环境提供的其它应用程序有:

  • 应用程序加载器:List of applications#Application launchers
  • 剪贴板管理器:Clipboard#Managers
  • 桌面渲染器:Xorg#Composite
  • 桌面壁纸配置器与桌面图标:List of applications#Wallpaper setters and Openbox#Desktop icons and wallpapers
  • 显示管理器:Display manager#List of display managers
  • 显示器节电配置:Display Power Management Signaling
  • 登出对话框:List of applications#Logout UI
  • 挂载工具:List of applications#Mount tools
  • 消息通知守护进程:Desktop notifications
  • 安全策略认证代理:Polkit#Authentication agents
  • 屏幕锁定器:List of applications#Screen lockers
  • 音量管理器:List of applications#Volume control

Wayland

Wayland 是一个用于 混成窗口管理器 与其客户端对话的协议,也是一个实现该协议的库。GNOME 和 KDE Plasma 等一些桌面环境支持 Wayland。它还有一个混成器实现参考叫做 Weston。Xwayland 则提供了一个兼容层,来让以前的 X11 应用程序能在 Wayland 中运行。

xinit

用户可以通过 xinit 程序手动启动 Xorg 显示服务器,startx(1) 脚本是 xinit(1) 的前端。

xinit 通常用在启动 X 时执行窗口管理器 或 桌面环境。虽然可以使用 xinit 在无窗口管理器的情况下启动图形程序,大部分图形程序都需要一个兼容 EWMH 的窗口管理器。显示管理器 启动 Xorg 并读取 xprofile。

xinit 和 startx 可以带一个可选的客户端程序参数,如果未提供这个参数,它们会从 ~/.xinitrc 确认要启动的客户端。所以 xinit /usr/bin/foo 等价于在 ~/.xinitrc 中设置 exec foo 并执行 xinit。

下一篇:XWayland开发入门系列1:运行测试程序