我当前的桌面环境:Plasma Wayland。
许多 GUI 应用程序无法从 Emacs 守护进程(由 e systemd 单元启动)内启动,除非XDG_SESSION_TYPE
设置为“wayland”。当 Emacs 正常启动时这不是问题,但该环境变量不会作为服务继承。
我尝试编辑单元:
ExecStart=/usr/bin/bash -c 'XDG_SESSION_TYPE=$${XDG_SESSION_TYPE} exec /usr/bin/emacs --fg-daemon'
但这在服务的初始(登录后)生命周期内无效。
当前单位:
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=notify
ExecStart=/usr/bin/bash -c 'XDG_SESSION_TYPE=$${XDG_SESSION_TYPE} exec /usr/bin/emacs --fg-daemon'
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
KillMode=process
Environment="XMODIFIERS=@im=fcitx" "GTK_IM_MODULE=fcitx" "LC_CTYPE=en_GB.UTF-8"
SuccessExitStatus=15
Restart=always
[Install]
WantedBy=default.target
答案1
直接设置就可以了
Environment="XDG_SESSION_TYPE=wayland"
并忽略 X11 会话。