登录时是否执行xinitrc?

登录时是否执行xinitrc?

我有一个~/.xinitrc包含以下内容的

xrdb -merge $HOME/.Xdefaults

xinitrc基本上没用,因为当用户登录时它没有加载,我不认为我做错了什么,因为相同的命令适用于bash,我的问题是:是否xinitrc识别环境变量?

答案1

~/.xinitrcstartx仅当您使用(或任何调用)启动 X11 时才读取xinit。如果您以图形模式登录,显示管理器会选择要启动的会话。每个会话管理器或桌面环境都有自己的启动脚本(如果有)。

大多数系统会自动加载资源~/.Xresources作为默认 X11 启动脚本的一部分。尝试将您的资源文件重命名为~/.Xresources.

答案2

.xinitrcxinit当您显式运行(startx最终调用xinit)启动 X-server时执行。大多数情况下,这种情况不会发生,因为当前的 Linux 使用桌面管理器,它直接启动 X-Server,然后运行/etc/X11/Xsession <desktopenvironment>​​,其中是中文件中<desktopenvironment>任意行的值,例如Exec=/usr/share/xsessions

Exec=startxfce4

如果您选择 XFCE 作为会话类型。

在至少基于 Debian 的系统上,脚本/etc/X11/Xsession.d/是按顺序获取的。大多数这些脚本都会设置内容和/或修改STARTUP最终在行中使用的变量

exec $STARTUP

因此从技术上讲,您可以编写一个/usr/share/xsession/xinitrc.desktop文件,让您选择将运行的会话~/.xinitrc

相关内容