창 관리자의 환경 변수가 X 클라이언트에 전파되지 않습니다.

창 관리자의 환경 변수가 X 클라이언트에 전파되지 않습니다.

BSPWM 세션을 시작할 때마다 어떻게 시작하든(LightDM 및 Startx로 테스트했습니다) 해당 세션 중에 환경 변수가 예상대로 X 클라이언트에 전파되지 않는 것을 발견했습니다.

내용을 확인해 /proc/$( pgrep bspwm )/environ보니 BSPWM 프로세스 자체가하다예상되는 환경 변수가 있습니다. 그러나 X 세션이 시작되면 X 클라이언트(예: 터미널 에뮬레이터)는 다음을 수행합니다.아니요예상되는 환경 변수가 설정되었습니다.

이것은 매우 이상한 문제이며 디버깅 방법을 모르겠습니다. 내가 간과하고 있는 명백한 구성 문제가 있습니까?

내 아주 기본적인 ~/.xinitrc스크립트는 다음과 같습니다.

#!/bin/sh

# Set a bunch of environment variables
. ~/.config/envrc

# Copy some useful elements from my distro's xinit script
. /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
. /etc/X11/xinit/xinitrc.d/xdg-user-dirs.sh
if test -r $HOME/.nvidia-settings-rc && type -p nvidia-settings > /dev/null
then
    nvidia-settings --load-config-only > /dev/null 2>&1 &
fi

# Load Xresources for various programs
xrdb -I $HOME -merge ~/.Xresources

# Run my window manager
exec /usr/bin/bspwm "$@"

관련이 있는 경우 현재 Opensuse Tumbleweed를 사용하고 있으며 어떤 방식으로든 기본 PAM 구성을 조정하지 않았습니다. 그리고 내가 아는 한, 나는 Herbstluftwm 아래의 데비안에서도 이 문제에 직면했습니다. 따라서 저는 이것이 BSPWM 특정 또는 Suse 특정 문제라고 생각하지 않습니다.

답변1

문제는 Sxhkd(BSPWM과 함께 사용되는 핫키 데몬)와 Urxvtd를 Systemd 사용자 서비스로 실행하고 있다는 것이 밝혀졌습니다.

systemctl --user start \
    bspwm-panel.service \
    bspwm-sxhkd.service \
    redshift.service \
    urxvtd.service

스크립트를 다음과 같이 변경했습니다.

systemctl --user import-environment
systemctl --user start \
    bspwm-panel.service \
    bspwm-sxhkd.service \
    redshift.service \
    urxvtd.service

이제는 잘 작동합니다.

가져올 특정 환경 변수(예: )를 화이트리스트에 추가하려면 PATH를 작성할 수 있습니다 systemctl --user import-environment PATH DISPLAY FOO BAR ....

이 문제를 해결해준 @dirkt에게 감사드립니다!

관련 정보