通用 Wayland 会话管理器
Universal Wayland Session Manager (uwsm) 动态地将独立的 Wayland 合成器 封装成一组 systemd 单元。这提供了强大的会话管理,包括环境、XDG Autostart 支持、与登录会话的双向绑定以及干净的关闭。
loginctl terminate-user ""
。安装
配置
服务启动通知和 compositor 设置的变量
WAYLAND_DISPLAY
(和其他有用的环境变量),那么您可以跳过此部分,并且不需要使用 uwsm finalize
。为了找到当前的 compositor,wayland 应用程序需要 WAYLAND_DISPLAY
(或 DISPLAY
变量,如果它们旨在通过 Xwayland 运行)。 因此,一旦 compositor 设置了它们的值,就应将此变量和其他有用的环境变量放入 systemd/dbus 激活环境中。
命令 uwsm finalize
将 WAYLAND_DISPLAY
、DISPLAY
和其他通过空格分隔的 UWSM_FINALIZE_VARNAMES
列表列出的环境变量放入激活环境中。 因此,您需要在 compositor 准备就绪后执行此命令。
如果您的激活环境中需要 compositor 设置的其他变量,那么您也可以将它们作为参数传递
exec uwsm finalize VAR1 VAR2 ...
环境变量
在 ${XDG_CONFIG_HOME}/uwsm/env
文件中设置的所有环境变量都由 uwsm 获取,并且可用于所有受管理的 compositor 以及在此类会话中运行的图形应用程序。
如果您需要仅为特定的compositor(以及该图形会话中的图形应用程序)设置某些环境变量,请将它们放在 ${XDG_CONFIG_HOME}/uwsm/env-compositor
中。
所有这些文件都应使用以下格式设置环境变量
export KEY1=VAR1 export KEY2=VAR2 export KEY3=VAR3 ...
并且不应包含注释。
用法
启动
uwsm 可以通过 TTY 和 显示管理器 启动。
TTY
在您的 ~/.profile
文件中添加
if uwsm check may-start && uwsm select; then exec uwsm start default fi
如果您想始终启动相同的 compositor,那么您可以在 ~/.profile
文件中使用
if uwsm check may-start; then exec uwsm start compositor.desktop fi
显示管理器
您可以创建一个自定义会话桌面条目,通过 uwsm 启动您的 compositor
/usr/share/wayland-sessions/my-compositor-uwsm.desktop
[Desktop Entry] Name=My compositor (with UWSM) Comment=My cool compositor, UWSM session # either full command line with metadata and executable Exec=uwsm start -N "My compositor" -D mycompositor:mylib -C "My cool compositor" -- my-compositor # or a reference to another entry Exec=uwsm start -- my-compositor.desktop DesktopNames=mycompositor;mylib Type=Application
会话终止
如果您想终止当前的 uwsm 会话,那么您应该使用 loginctl terminate-user ""
(终止整个用户会话)或 uwsm stop
(在 uwsm start
之后执行代码或终止用户会话,如果它替换了 登录 shell)。