Seatd

出自 高山 Linux

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,则不需要上述任何代码片段。

参见