What is ".xsession" for?
If you log in in text mode then start a GUI session with xinit or with the wrapper script startx
, then xinit
does the following things:
- Start an X server (typically through the script
/etc/X11/xinit/xserverrc
). - Usually run some scripts in
/etc/X11
(typically/etc/X11/xinit/xinitrc
), depending on how it's set up. - Run
~/.xinitrc
, if it exists. If it doesn't exist, run a default client (traditionallyxterm
). - Once
~/.xinitrc
terminates, kill the X server.
If you log in in graphical mode on an X display manager (xdm, gdm, kdm, wdm, lightdm, …), traditionally, what is executed after you log in is some scripts in /etc/X11
then ~/.xsession
.
~/.xsession
has the role of ~/.profile
and ~/.xinitrc
combined: it's supposed to perform the initial startup of your session (e.g. define environment variables), then launch programs specific to the GUI (usually at least window manager).
Nowadays, most X display managers give you a choice of a session. Choosing a particular session launched a specific desktop environment, session manager, window manager. What is executed then is only that DE/SM/WM and whatever programs it chooses to start based on whatever configuration files it chooses to read. Many environments provide a “custom session” that reads the traditional ~/.xsession
.
X session startup can be complicated these days. A good place to start is the script /etc/X11/Xsession
to see how things will get executed.
On my Debian/Ubuntu systems, the script /etc/X11/Xsession
sets the variable USERXSESSION=$HOME/.xsession
. Later, the script /etc/X11/Xsession.d/50x11-common_determine-startup
looks for this script and uses it as the primary session, if allowed by system policy in /etc/X11/Xsession.options
, and if no other session was requested by the display manager.
I strongly recommend you to take a look in the book X Window system administrator's guide : for X version 11. Chapter 2 explains the purpose of .xsession
and the whole configuration process for a sample setup. Also it's a nice refresher for the whole x-window related terminology (and i hope you don't get spooked :) ). You can get the book from
http://archive.org/details/xwindowsystemadm08muimiss
Although it's rather outdated you can find a lot of information of the underlying concepts that didn't change until today and it is very legible. Moreover it is really funny to take a look at what was top notch at those days.