.xinitrc,.xsession和.xsessionrc之间的区别


55

我发现了三个配置文件。

  1. .xinitrc
  2. .xsession
  3. .xsessionrc

我知道第一个startx用于显示,第二个和第三个用于显示管理器。但是,后两者有什么区别?

Answers:


64

~/.xinitrc由执行xinit,通常通过调用startx。登录后将执行此程序:首先登录文本控制台,然后使用启动GUI startx。的作用.xinitrc是启动会话的GUI部分,通常是通过设置一些与GUI相关的设置(例如,键绑定(带有xmodmapxkbcomp),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登录时才读取。


5

根据另一讨论,startx +〜/ .xsession而不是〜/ .xinitrc导致功能降低(xfce4,sid)

首先:.xsessionrc用于保存全局环境变量。重点是我的。

其次:40x11-common_xsessionrcin /etc/X11/Xsession.d是在之前获得的50x11-common_determine-startup。因此.xsessionrc请先阅读, .xsession然后环境中设置的任何环境变量将对由中的命令运行的应用程序可用.xsession

进一步阅读:

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.