Wayland
(重定向自 XDG RUNTIME DIR)
Wayland 是一个新的显示协议,旨在取代 X11。实现 Wayland 显示服务器协议的显示服务器也称为 Wayland 合成器,因为它们还执行合成窗口管理器的任务。
存在多种合成器实现,包括 Sway、Mutter (GNOME 的合成器) 和 Kwin (KDE 的合成器)。ArchWiki 中提供了更详尽的列表。
Wayland 需要一个 seat 管理器 才能工作。
setup-wayland-base
脚本安装并启用 elogind 作为 seat 管理器,启用 community 仓库 并自动启用 eudev,因为这些是 Wayland 工作所必需的。
XDG_RUNTIME_DIR
根据协议规范,Wayland 合成器需要设置 XDG_RUNTIME_DIR
变量。Elogind seat 管理器处理 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
,请安装 testing 仓库中提供的软件包 mkrundir。在您的 shell 初始化脚本 (例如:~/.profile) 中,在文件顶部包含如下条目~/.profile 的内容
... export XDG_RUNTIME_DIR=$(mkrundir) ...
根据 mkrundir 网站,由于权限提升,这可能在容器内部存在问题。
手动配置 XDG_RUNTIME_DIR
通常,手动配置 XDG_*
变量时应谨慎,因为此配置可能存在错误或与其他自动执行此操作的实用程序冲突。仅在未使用 elogind 且上述其他解决方案无法处理此问题的系统上使用此方法。
可以通过将以下代码片段添加到 shell 初始化脚本 (例如:~/.profile) 来手动初始化 XDG_RUNTIME_DIR
~/.profile 的内容
if [ -z "$XDG_RUNTIME_DIR" ]; then XDG_RUNTIME_DIR="/tmp/$(id -u)-runtime-dir" mkdir -pm 0700 "$XDG_RUNTIME_DIR" export XDG_RUNTIME_DIR fi