登录时是否执行了xinitrc?

use*_*250 6 login xorg x11

我有~/.xinitrc以下内容

xrdb -merge $HOME/.Xdefaults
Run Code Online (Sandbox Code Playgroud)

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

Ban*_*uin 5

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

Exec=startxfce4
Run Code Online (Sandbox Code Playgroud)

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

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

exec $STARTUP
Run Code Online (Sandbox Code Playgroud)

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


Gil*_*il' 5

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

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