.xinitrc与.xsession与.xsessionrc区别
(2019-03-09 23:35:26)1、文字模式下,起作用的文件是主目录下的 .xinitrc
which is executed by xinit, which is usually invoked via startx. This program is executed after logging in: first you log in on a text console, then you start the GUI with startx. The role of .xinitrc is to start the GUI part of the session, typically by setting some GUI-related settings such as key bindings (with xmodmap or xkbcomp), X resources (with xrdb), etc., and to launch a session manager or a window manager (possibly as part of a desktop environment).
2、图形启动界面下,起作用的是 .xsession
which is executed when you log in in graphical mode (on a display manager) and the display manager invokes the “custom” session type. (With the historical display manager xdm, .xsession is always executed, but with modern display managers that give the user a choice of session type, you usually need to pick “custom” for .xsession to run.) Its role is both to set login-time parameters (such as environment variables) and to start the GUI session. A typical .xsession is
#!/bin/sh. ~/.profile
. ~/.xinitrc
如果用图形界面登录,如何也使用.xinitrc,而不需要另外配置?:
用.xsession, 把这几个文件包含进来:
..
.
3、不是很常用,仅debian系使用。.xsessionrc
is executed on Debian (and derivatives such as Ubuntu, Linux Mint, etc.) by the X startup scripts on a GUI login, for all session types and (I think) from all display managers. It's also executed from startx if the user doesn't have a .xinitrc, because in that case startx falls back on the same session startup scripts that are used for GUI login. It's executed relatively early, after loading resources but before starting any program such as a key agent, a D-Bus daemon, etc. It typically sets variables that can be used by later startup scripts. It doesn't have any official documentation that I know of, you have to dig into the source to see what works.
4、总结
.xinitrc and .xsession are historical features of the X11 Window system so they should be available and have a similar behavior on all Unix systems. On the other hand, .xsessionrc is a Debian feature and distributions that are not based on Debian don't have it unless they've implemented something similar.
.xprofile is very similar to .xsessionrc, but it's part of the session startup script of GDM (the GNOME display manager), so it's only read if you log in with GDM.