For the complete documentation index, see llms.txt. This page is also available as Markdown.

6.2.Wayland 概述

Wayland 是一种通信协议,可以替代 Xorg 等显示服务器。它与 Xorg 在多个重要方面有所不同。

首先,Wayland 只是一个协议,它通过某种机制在客户端之间充当中介,从而去除了对 X 服务器的依赖。Xorg 同时包含 X11 协议(用于运行远程显示)和 X 服务器(用于接受连接并显示窗口)。而在 Wayland 下,合成器或窗口管理器提供显示服务器,而不是传统的 X 服务器。

由于 Wayland 不是 X 服务器,传统的 X 屏幕连接需要使用其他方法,如 VNC 或 RDP 管理远程桌面。其次,Wayland 可以作为独立实体管理客户端与合成器之间的复合通信,而无需支持 X 协议。

Wayland 相对较新,并不是所有软件都已更新为原生运行而无需 Xwayland 支持。由于 Wayland 不提供 X 服务器,而是期望合成器提供该支持,因此尚未支持 Wayland 的 X11 窗口管理器需要以不带 -rootless 参数的方式启动 Xwayland。移除该参数后,即可恢复对 X11 窗口管理器的支持。

注意

当前的 NVIDIA® 驱动程序应该能与大多数 wlroots 合成器兼容,但可能略显不稳定,且不支持所有功能。目前正在寻求志愿者协助开发 NVIDIA® DRM。

目前,许多软件在 Wayland 上运行时几乎没有问题,包括 Firefox。同时,也有一些桌面环境可供选择,如 Compiz Fusion 替代品 Wayfire 和 i3 窗口管理器替代品 Sway。

注意

截至 2021 年 5 月,plasma5-kwin 已支持在 FreeBSD 上运行 Wayland。要在 Wayland 下使用 Plasma,请使用 startplasma-wayland 参数启动 ck-launch-session,并用以下命令关联 dbus:dbus-launch --exit-with-x11 ck-launch-session startplasma-wayland

对于合成器,必须有支持 evdev(4) 驱动程序的内核,才能利用按键绑定功能。默认情况下,GENERIC 内核已构建此支持;但是,如果内核经过定制并且去除了 evdev(4) 支持,则需要加载 evdev(4) 模块。此外,Wayland 用户需要成为 video 组的成员。要快速更改此设置,请使用 pw 命令:

pw groupmod video -m user

安装 Wayland 非常简单;该协议本身不需要太多配置。大多数合成工作将取决于所选的合成器。现在安装 seatd,可以跳过合成器安装和配置中的一个步骤,因为 seatd 用于提供对某些设备的非 root 访问权限。

所有此处说明的合成器都应该能与 graphics/drm-kmod 开源驱动程序兼容;但是,使用专有驱动程序时,NVIDIA® 显卡可能会遇到一些问题。首先安装以下软件包:

# pkg install wayland seatd

安装完协议和支持软件包后,需要安装合成器来创建用户界面。以下部分将介绍几种合成器。所有使用 Wayland 的合成器都需要在环境中定义运行时目录。自 FreeBSD 14.1 以来,这已自动创建和定义。对于较早的版本,可以通过以下命令在 Bourne shell 中创建此目录:

% export XDG_RUNTIME_DIR=/var/run/user/`id -u`

需要注意的是,大多数合成器会在 XDG_RUNTIME_DIR 目录中搜索配置文件。在此处的示例中,将使用参数来指定配置文件路径为 ~/.config,以保持临时文件和配置文件的分离。建议为每个合成器配置别名,以加载指定的配置文件。

警告

有报告称,ZFS 用户可能会遇到一些 Wayland 客户端的问题,因为它们需要访问运行时目录中的 posix_fallocate()。虽然作者无法在其 ZFS 系统上重现此问题,但推荐的做法是不使用 ZFS 作为运行时目录,而是使用 tmpfs 来挂载 /var/run 目录。此时,可通过命令 mount -t tmpfs tmpfs /var/run 挂载 tmpfs 文件系统,再通过 /etc/fstab 配置使此更改在重启后生效。可将 XDG_RUNTIME_DIR 环境变量配置为使用 /var/run/user/$UID,以避免 ZFS 相关问题。查看以下配置示例时请注意此问题。

seatd 守护进程有助于管理合成器中对共享系统设备的非 root 用户访问,包括显卡。对于传统的 X11 管理器,如 Plasma 和 GNOME,seatd 并不需要;但是,对于此处讨论的 Wayland 合成器,需要在系统上启用并在启动合成器环境之前运行。要现在启用并启动 seatd 守护进程,并确保在系统初始化时也启用:

接下来,需要为 GUI 环境安装合成器,它类似于 X11 桌面。以下部分将讨论三种合成器,包括基本配置选项、屏幕锁定设置和更多信息的推荐。

最后更新于