我的设置是:
- Debian 测试(延伸),最新
- 启用自动登录的 LightDM
- 很棒的窗口管理器
- bash,在 ROXTerm 或 XTerm 中
我似乎无法设置自己的环境变量并在 X 会话启动时获取它。这是我尝试过的:
- 使用
~/.bash_profile
在我以前的操作系统上工作,但我从中学到了这个答案它不是源自 Debian 及其衍生版本中的 X 启动 - 我
mv .bash_profile .profile
按照建议做了,但它也不起作用,因为,正如我后来了解到的那样这里,~/.profile
当显示管理器启动 X 会话时不会获取 - 上述问题的答案建议使用
~/.xsessionrc
.这也行不通,因为据我所知这里,它仅来源于/etc/X11/Xsession
LightDM 不执行的地方 - Arch Linux 维基索赔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
仅当您在文本模式下登录后使用startx
(或以其他方式调用)启动 GUI 会话时才读取。xinit
所以这对你没有帮助。
使用显示管理器登录时是否读取~/.bash_profile
、~/.profile
、~/.xprofile
和~/.xsessionrc
取决于显示管理器的配置方式以及您在登录时选择的会话类型。据我所知,至少在 Debian jessie 上(我还没有查看是否从那时起,情况发生了变化):
/usr/share/lightdm/lightdm.conf.d/01_debian.conf
告诉 Lightdm 用作/etc/X11/Xsession
会话启动脚本。/etc/X11/Xsession
(通过/etc/X11/Xsession.d/40x11-common_xsessionrc
)加载$USERXSESSIONRC
,即~/.xsessionrc
.
所以~/.xsessionrc
应该可以工作,至少在 Debian jessie 上是这样。
在 Debian 上,~/.pam_environment
应该能够为任何登录方法设置环境变量。
或者,您可以通过以下方式设置环境变量并从 Awesome 运行程序~/.config/awesome/rc.lua
(调用posix.setenv("QT_STYLE_OVERRIDE", "GTK+")
设置环境变量)。