Wayland简介

备注

The Wayland Protocol(自译中文版) <https://wayland.axionl.me/>_ ( AxionL的博客 ) 完整翻译了 The Wayland Protocol 的前10章,是系统学习Wayland协议非常好的书籍。英文原版还有11、12章。建议阅读学习!

Wayland是一个显示服务器协议,目标是替代X Window System,实现一个现代、安全和简单的窗口系统。在Wayland协议中显示服务器被称为 compositors ,这是因为Wayland也作为 compositing window managers (wayland支持的窗口管理器分2类:平铺窗口管理器和堆叠窗口管理器,例如 sway - i3兼容Wayland compositor 属于平铺窗口管理器,而KDE的KWin和Gnome的Mutter属于堆叠窗口管理器) 。主要的桌面系统,例如KDE Plasma和GNOME都已经实现了各自的Wayland compositors。

备注

KDE的KWin和Gnome的Mutter同时支持Xorg和Wayland,取决于使用哪种显示服务器。例如Mutter在使用Wayland显示服务器,就运行在KMS和libinput之上,实现了Wayland核心协议的compositor,并且在运行X11应用程序时作为Xwayland。当Mutter运行在Xorg之上,则作为一个X11窗口管理器和compositing manager。

目前主流的Gnome和KDE都支持运行在Wayland上,不过 xfce 还没有实现Wayland(即使最新的4.16版本也不支持,但是社区计划follow gnome和kde社区迁移到Wayland。目前,我比较倾向在这个先进的显示服务器上运行 sway - i3兼容Wayland compositor ,实现轻量级的桌面管理。

备注

参考 Enlightenment on Raspberry Pi 3 in Wayland mode is pretty smooth 可以了解到,Wayland现代化的图形显示架构,可以加速图形并降低硬件需求:

Enlightenment with no X11 (running as a wayland compositor) at a smooth 60fps even with a live miniature pager preview updating to match, a full desktop all smooth at 60fps. Terminology running and Rage playing movies smoothly. On a stock Rasperry Pi 3 running 32bit Arch Linux with Mesa VC4 drivers.

Ubuntu Linux 21.04 已经默认运行Wayland,但是对于其他Ubuntu版本,需要一定配置。由于一些主流应用程序还没有支持Wayland,这些程序运行在Wayland环境是通过 XWayland 的独立X实力来运行在Wayland中。

要求

大多数Wayland组件只能工作在 KMS (Kernel mode setting) 的系统上。这要求选择兼容的硬件,区别是两种不同的缓存API:GBM和EGLStreams。NVIDIA GPU使用EGLStreams驱动,其他显卡驱动则支持GBM。对于Wayland compositor必须支持这两种API或者其中一种API才能正常工作。例如,GNOME(使用Mutter)同时支持GBM和EGLStreams,而KDE Plasma(使用KWin)则在所有版本中支持GBM,不过只从Plasma 5.16才开始支持EGLStreams。其他Compositors如果只支持GBM就不能在NVIDIA上工作。

目前除了上述GNOME和KDE,其他的Wayland compositors推荐使用 sway - i3兼容Wayland compositor 和 enlightenment 。

推荐程序

在Gentoo Wiki中有一页 gentoo linux wiki: List of software for Wayland 集中介绍了一些适合Wayland环境的推荐程序:

  • Compositors:

    • Enlightenment: 堆叠式现代化的扁平设计风格,简洁有力,而且这个窗口管理器以轻量级快速闻名

    • sway - i3兼容Wayland compositor : 轻量级简洁平铺,我的主力桌面

    • Hyprland: Hyprland.org 推出的非常酷炫的 自动平铺 compositor,并且官网上有很多动图和截屏可以了解这款compositor。类似科幻电影的交互终端,有点意思

sway - i3兼容Wayland compositor

sway - i3兼容Wayland compositor 是一个平铺窗口管理器,完全用C愿意啊编写,非常快速并且占用资源少。我日常 运行sway窗口管理器 ,经过实践验证,采用Wayland图形现实服务的 sway - i3兼容Wayland compositor 窗口管理器是最轻量级且满足开发运维工作的桌面(无需任何花哨的效果)。

sway 也是替代 i3窗口管理器 的完全基于 wayland显示服务器协议 的轻量级窗口管理器解决方案。

参考