我找到了三个配置文件。
.xinitrc
.xsession
.xsessionrc
我知道第一个是用于使用的startx
,第二个和第三个是在使用显示管理器时使用的。但最后两者有什么区别呢?
答案1
~/.xinitrc
执行者xinit
,通常通过 调用startx
。该程序在登录后执行:首先在文本控制台上登录,然后使用 启动 GUI startx
。的作用.xinitrc
是启动会话的 GUI 部分,通常通过设置一些与 GUI 相关的设置,例如键绑定(使用xmodmap
或xkbcomp
)、X 资源(使用xrdb
)等,并启动会话管理器或窗口管理器(可能作为桌面环境的一部分)。
~/.xsession
当您以图形模式登录时执行(在显示管理器)并且显示管理器调用“自定义”会话类型。 (对于历史显示管理器 xdm,.xsession
始终执行,但是对于为用户提供会话类型选择的现代显示管理器,您通常需要选择“自定义”来.xsession
运行。)它的作用是设置登录时参数(例如环境变量)并启动 GUI 会话。典型的.xsession
是
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
在 Debian(以及 Ubuntu、Linux Mint 等衍生产品)上,由 GUI 登录上的 X 启动脚本执行,适用于所有会话类型和(我认为)所有显示管理器。startx
如果用户没有,它也会执行.xinitrc
,因为在这种情况下,startx
会依赖于用于 GUI 登录的相同会话启动脚本。它的执行相对较早,在加载资源之后但在启动任何程序(例如密钥代理、D-Bus 守护程序等)之前。它通常设置可供以后启动脚本使用的变量。据我所知,它没有任何官方文档,您必须深入研究源代码才能查看有效的内容。
.xinitrc
和.xsession
是 X11 Window 系统的历史功能,因此它们应该在所有 Unix 系统上可用并且具有类似的行为。另一方面,.xsessionrc
它是 Debian 的一个功能,不基于 Debian 的发行版没有它,除非它们实现了类似的功能。
.xprofile
与 非常相似.xsessionrc
,但它是会话启动脚本一些显示管理器包括 GDM(GNOME 显示管理器)和 lightdm,但不包括 xdm 和 kdm 等其他内容。
答案2
根据另一次讨论,startx + ~/.xsession 而没有 ~/.xinitrc,会导致功能减少(xfce4、sid)
第一:
.xsessionrc
用于持有全球环境变量。重点是我的。其次:
40x11-common_xsessionrc
in/etc/X11/Xsession.d
是在 之前获取的50x11-common_determine-startup
。所以.xsessionrc
之前已读取.xsession
,任何环境变量集都将可供由 中的命令运行的应用程序使用.xsession
。
进一步阅读: