시스템 단위에서 XDG_SESSION_TYPE을 상속하는 방법은 무엇입니까?

시스템 단위에서 XDG_SESSION_TYPE을 상속하는 방법은 무엇입니까?

현재 데스크탑 환경: Plasma Wayland.

XDG_SESSION_TYPE많은 GUI 응용 프로그램은 "wayland"로 설정 하지 않는 한 Emacs 데몬(systemd 장치에 의해 시작됨) 내에서 시작할 수 없습니다 . 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 세션을 무시합니다.

관련 정보