如何在Linux上为图形登录设置环境变量?


15

我正在寻找一种为Linux上的图形登录设置任意环境变量的方法。我不是在谈论启动终端并在终端内导出环境变量,因为这些变量仅存在于该终端内。我想知道如何设置一个环境变量,该变量将应用于在图形会话中启动的所有程序。

换句话说,Xorg等于~/.bash_login什么?

Answers:


10

您可以始终将它们放在中.profile,因此它们应申请任何登录。

但是,如果.bash_login存在a,则会出现问题:在这种情况下,bash无法读取.profile

如果您希望您的变量来自.profile于bash和其他登录名,请不要使用.bash_login!放入bash特定变量.bashrc

或可替换地,包括.profile来自.bash_login


谢谢,.profile工作。
瑞安·汤普森

1
另外,.profile非常好,因为我可以将任何想要的bash代码放入其中。因此,我可以添加到现有的环境变量中,并完全执行其他操作。
瑞安·汤普森

1
看来对于KDE,您需要将其放入~/.kde/env/并以结尾.sh。请参见startkde联机帮助页。
瑞安·汤普森

2
实际上,这似乎有点复杂。这取决于您的选择分布,桌面环境,甚至您的登录外壳。对于Ubuntu 10.04上的Gnome,您必须将安装脚本放入中~/.gnomerc,如/etc/X11/Xsession.d/55gnome-session_gnomerc.KDE 所示,无论登录外壳是哪个外壳,KDE都会读取配置文件脚本。如果SHELL=bash,则读取~/.profile。如果SHELL=zsh,则读取~/.zprofile。我不知道它对其他外壳有什么作用。
瑞安·汤普森

4

.profile所做的不只是设置环境变量,因此我将环境设置任务拆分为设置环境的.setenv文件。为了在Debian上为X11设置环境,我在家里添加了一个:.xsessionrc

. ~/.setenv

导致.xsessionrc来源的文件是/etc/X11/Xsession.d/40x11-common_xsessionrc

使用bash用来设置其环境的文件并不能满足我的要求。当然,如果我在X11中启动bash shell,那么我将获得所需的环境。但是,我需要设置PATH,以便我的桌面环境可以运行所需的软件。例如,我经常使用安装在常规路径之外的自定义版本的Firefox。我希望我的桌面环境启动正确的版本,而不是使用默认路径中可以找到的任何版本。为此,必须在启动桌面环境之前设置PATH。


0

Xorg本身没有,因为它不会启动您的程序-您可以使用任何显示管理器(gdm,xdm,xinit,startx等)或会话管理器(gnome-session,KDE等) ,因为这些是桌面会话过程的父级。不幸的是,有各种各样的解决方案,每种都有不同的启动脚本/点文件,因此没有一个千篇一律的答案。(在X的客户机/服务器模型下,X服务器甚至可能与客户机不在同一台计算机上,并且它通常以root身份而不是您的身份运行,因此在诸如环境变量之类的设置位置也不正确。)


我知道Xorg本身不是我想要看的。我只想知道如何在X会话中设置环境变量。
瑞安·汤普森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.