Bash
無法在 X 會話啟動時導出環境變數
我的設置是:
- Debian 測試(延伸),最新
- 啟用自動登錄的 LightDM
- 很棒的視窗管理器
- bash,在 ROXTerm 或 XTerm 中
我似乎無法設置自己的環境變數並在 X 會話啟動時獲取它。這是我嘗試過的:
- using
~/.bash_profile
在我以前的作業系統上工作,但我從這個答案中了解到,它不是來自 Debian 的 X 啟動及其衍生產品- 我
mv .bash_profile .profile
按照建議做了,但它也沒有用,因為正如我後來從這裡了解到的那樣,~/.profile
當顯示管理器啟動 X 會話時沒有來源- 上述問題的答案建議使用
~/.xsessionrc
. 這也不起作用,因為正如我從這裡了解到的那樣,它僅來自/etc/X11/Xsession
LightDM 不執行的來源- Arch Linux wiki聲稱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
如何正確設置它們?
~/.xinitrc
只有在以文本模式登錄後使用startx
(或以其他方式呼叫)啟動 GUI 會話時才會讀取。xinit
所以這對你沒有幫助。使用顯示管理器登錄時是否讀取
~/.bash_profile
、和取決於顯示管理器的配置方式以及登錄時選擇的會話類型。據我所知,至少在 Debian jessie 上(我沒有看過從那時起,情況發生了變化):~/.profile``~/.xprofile``~/.xsessionrc
/usr/share/lightdm/lightdm.conf.d/01_debian.conf
告訴 Lightdm/etc/X11/Xsession
用作會話啟動腳本。/etc/X11/Xsession
(via/etc/X11/Xsession.d/40x11-common_xsessionrc
) 負載$USERXSESSIONRC
是~/.xsessionrc
.所以
~/.xsessionrc
應該可以工作,至少在 Debian jessie 上是這樣。在 Debian 上,
~/.pam_environment
應該可以為任何登錄方法設置環境變數。
~/.config/awesome/rc.lua
或者,您可以通過(呼叫設置環境變數)設置環境變數並從 Awesome 執行程序posix.setenv("QT_STYLE_OVERRIDE", "GTK+")
。