Answers:
~/.xinitrc
由执行xinit
,通常通过调用startx
。登录后将执行此程序:首先登录文本控制台,然后使用启动GUI startx
。的作用.xinitrc
是启动会话的GUI部分,通常是通过设置一些与GUI相关的设置(例如,键绑定(带有xmodmap
或xkbcomp
),X资源(带有xrdb
)等),并启动会话管理器或窗口管理器(可能是桌面环境的一部分)。
~/.xsession
当您以图形方式登录时(在显示管理器上)并在显示管理器调用“自定义”会话类型时执行。(使用历史显示管理器xdm .xsession
总是可以执行,但是使用可以为用户提供会话类型选择的现代显示管理器,通常需要选择“自定义” .xsession
才能运行。)它的作用是设置登录时间参数(例如环境变量)并启动GUI会话。典型的.xsession
是
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
对于所有会话类型和(我认为)所有显示管理器,都通过GUI登录名上的X启动脚本在Debian(以及Ubuntu,Linux Mint等衍生产品)上执行。startx
如果用户没有,它也从执行.xinitrc
,因为在这种情况下,startx
回退到用于GUI登录的相同会话启动脚本。它是在加载资源之后但在启动任何程序(如密钥代理,D-Bus守护程序等)之前相对较早地执行的。它通常会设置可由以后的启动脚本使用的变量。它没有我知道的任何官方文档,您必须深入研究源代码才能看到有效的方法。
.xinitrc
并且.xsession
是X11 Window系统的历史功能,因此它们应该可用,并且在所有Unix系统上都具有类似的行为。另一方面,这.xsessionrc
是Debian的一项功能,除非他们已经实现了类似的功能,否则不基于Debian的发行版将没有此功能。
.xprofile
与极为相似.xsessionrc
,但它是GDM(GNOME显示管理器)的会话启动脚本的一部分,因此仅当您使用GDM登录时才读取。
根据另一讨论,startx +〜/ .xsession而不是〜/ .xinitrc导致功能降低(xfce4,sid)
首先:
.xsessionrc
用于保存全局环境变量。重点是我的。其次:
40x11-common_xsessionrc
in/etc/X11/Xsession.d
是在之前获得的50x11-common_determine-startup
。因此.xsessionrc
请先阅读,.xsession
然后环境中设置的任何环境变量将对由中的命令运行的应用程序可用.xsession
。
进一步阅读: