X 세션 시작 시 환경 변수를 내보낼 수 없습니다.

X 세션 시작 시 환경 변수를 내보낼 수 없습니다.

내 설정은 다음과 같습니다

  • 데비안 테스트(확장), 최신
  • 자동 로그인이 활성화된 LightDM
  • 훌륭한 창 관리자
  • Bash(ROXTerm 또는 XTerm)

내 환경 변수를 설정하고 X 세션이 시작될 때 가져올 수 없는 것 같습니다. 내가 시도한 것은 다음과 같습니다.

  • ~/.bash_profile이전 OS에서 작동했지만 다음에서 배웠습니다 .이 답변Debian 및 그 파생 제품의 X 부팅에서 발생하지 않습니다.
  • 제안한 대로 했지만 mv .bash_profile .profile작동하지 않았습니다. 나중에 알게 된 것처럼여기, ~/.profile디스플레이 관리자가 X 세션을 시작할 때 획득되지 않습니다.
  • 위 질문에 대한 대답 ~/.xsessionrc은 내가 아는 한 작동하지 않습니다.여기/etc/X11/Xsession, LightDM이 실행되지 않는 곳 에서만 발생합니다.
  • 아치 리눅스 위키주장하다LightDM 소스 ~/.xprofile파일이지만 이것도 작동하지 않습니다.

~/.xinitrc마지막 사이트의 제안을 시도하여 다음과 같이 했습니다 .

export QT_STYLE_OVERRIDE=GTK+
[ -f ~/.xprofile ] && source ~/.xprofile
~/.screenlayout/default.sh
awesome

~/.xprofile모습은 다음과 같습니다.

[[ -f ~/.bashrc ]] && . ~/.bashrc
source /etc/bash_completion.d/virtualenvwrapper

export GDK_NATIVE_WINDOWS=1
export WORKON_HOME=$HOME/env/

불행하게도 로그인하고 X 세션을 시작한 후 다음 변수 중 어느 것도 설정되지 않았음을 발견했습니다.

red@localhost:~$ echo $QT_STYLE_OVERRIDE

red@localhost:~$ echo $GDK_NATIVE_WINDOWS

red@localhost:~$ echo $WORKON_HOME

올바르게 설정하려면 어떻게 해야 합니까?

답변1

~/.xinitrc텍스트 모드로 로그인한 후 startxGUI 세션을 시작하기 위해 사용(또는 호출)하는 경우에만 읽으십시오 . xinit그래서 이것은 당신에게 도움이 되지 않습니다.

디스플레이 관리자를 사용하여 로그인할 때 ~/.bash_profile, ~/.profile, ~/.xprofile및 를 읽을지 여부는 ~/.xsessionrc디스플레이 관리자 구성 방법과 로그인 시 선택한 세션 유형에 따라 다릅니다. 내가 아는 한, 적어도 Debian jessie에서는(그 이후로 변경되었는지 확인하지 않았습니다):

  • /usr/share/lightdm/lightdm.conf.d/01_debian.conf/etc/X11/XsessionLightdm에게 세션 시작 스크립트 로 사용하도록 지시합니다 .
  • /etc/X11/Xsession(에 의해 /etc/X11/Xsession.d/40x11-common_xsessionrc) 로딩 $USERXSESSIONRC, 즉 ~/.xsessionrc.

따라서 ~/.xsessionrc적어도 Debian jessie에서는 작동할 것입니다.

데비안에서는 ~/.pam_environment모든 로그인 방법에 대해 환경 변수를 설정하는 것이 가능해야 합니다.

또는 환경 변수를 설정하고 다음을 통해 Awesome에서 프로그램을 실행할 수 있습니다.~/.config/awesome/rc.lua( posix.setenv("QT_STYLE_OVERRIDE", "GTK+")환경 변수를 설정하려면 호출하세요).

관련 정보