Seatd
Seatd 是一个会话管理守护进程,它只做它需要做的事情。不多也不少。仅依赖于 libc。会话管理负责调解对共享设备(图形,输入)的访问,而无需需要访问的应用程序成为 root 用户。
当使用 elogind 时,不需要 seatd,反之亦然。不要同时添加到自动启动。
安装
apk add seatd # 安装 seatd rc-update add seatd # 配置为自动启动 service seatd start # 现在启动它 adduser $USER seat # 允许当前用户访问 seatd
如果您已经以 $USER
身份登录,您将需要重新登录。
配置
与 elogind 相比,Seatd 是 sway 和其他 Wayland 合成器的轻量级解决方案。当使用 seatd 时,需要执行一些强制步骤。
配置 XDG_RUNTIME_DIR
设置变量 XDG_RUNTIME_DIR。所有 Wayland 合成器都需要此步骤。
环境变量
需要为所有 Wayland 合成器设置额外的环境变量,以便与 seatd 正常工作
XDG_SESSION_TYPE=wayland
LIBSEAT_BACKEND=seatd
XDG_CURRENT_DESKTOP=sway
变量 XDG_CURRENT_DESKTOP
必须针对其他 合成器 进行适当调整。
Seatd 和 Sway
当使用 seatd 时,sway 必须使用上面的 环境变量 和 D-Bus 启动,如下所示
~/.profile 的内容
# seatd 需要的环境变量 export XDG_SESSION_TYPE=wayland export LIBSEAT_BACKEND=seatd export XDG_CURRENT_DESKTOP=sway export XDG_VTNR=$(basename "$(tty)" | sed 's/tty//') # 使用 DBUS 启动 sway(仅在 TTY1 中) if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" -eq 1 ]; then exec dbus-run-session sway fi
确保您的 shell 读取并执行 .profile 中的 if 条件。Sway 也可以使用带有 seatd 的 wrapper 脚本 启动。如果使用 elogind,则不需要上述任何代码片段。