Wayland
Wayland 是一种旨在取代 X11 的新型显示协议。实现 Wayland 显示服务器协议的显示服务器也称为 Wayland 合成器,因为它们还执行合成窗口管理器的任务。
存在多种合成器实现,包括 Sway、Mutter (GNOME 的合成器) 和 Kwin (KDE 的合成器)。ArchWiki 中提供了更详尽的列表。
Wayland 需要 seat manager 才能工作。
setup-wayland-base
脚本安装并启用 elogind 作为 seat manager,启用 community 仓库,并自动启用 eudev,因为这些是 Wayland 工作所必需的。
XDG_RUNTIME_DIR
按照协议规范,Wayland 合成器需要设置 XDG_RUNTIME_DIR
变量。Elogind seat manager 处理 XDG_RUNTIME_DIR
,并为每个会话自动导出其他 XDG 环境变量。因此,如果使用 elogind,请勿进行进一步配置。
如果 Seatd 被使用,则有几种方法可以创建 XDG_RUNTIME_DIR
目录并导出此变量
使用 pam_rundir
pam_rundir 是一个 PAM 模块,提供运行时目录变量。安装 pam-rundir 软件包会处理依赖项,并且不需要进一步配置。
XDG_RUNTIME_DIR
变量必须在 Wayland 合成器之前初始化,并且在以下列出的两种方法的启动脚本/文件中,也必须在 D-Bus 会话实例启动之前初始化。使用 mkrundir
- mkrundir 是一个可执行文件,可用于由每个用户显式初始化运行时目录。要使用
mkrundir
,请安装 mkrundir 软件包,该软件包在 testing 仓库中提供。在您的 shell 初始化脚本中(例如:~/.profile),在文件顶部包含如下条目内容 ~/.profile
... export XDG_RUNTIME_DIR=$(mkrundir) ...
根据 mkrundir 网站,由于权限提升,这在容器内部可能会有问题。
手动配置 XDG_RUNTIME_DIR
通常,手动配置 XDG_*
变量时应谨慎,因为此配置可能存在错误或与其他自动执行此操作的实用程序冲突。仅在不使用 elogind 且上述其他解决方案无法处理此问题的系统上使用此方法。
可以通过将以下代码段添加到 shell 初始化脚本(例如:~/.profile)来手动初始化 XDG_RUNTIME_DIR
。
内容 ~/.profile