Difference between .xinitrc, .xsession and .xsessionrc
Clash Royale CLAN TAG#URR8PPP
up vote
39
down vote
favorite
I found three configuration files.
.xinitrc
.xsession
.xsessionrc
I know that the first one is for using startx
and the second and third are used when using a display manager. But what is the difference between the last two?
x11 login startx xinit
add a comment |Â
up vote
39
down vote
favorite
I found three configuration files.
.xinitrc
.xsession
.xsessionrc
I know that the first one is for using startx
and the second and third are used when using a display manager. But what is the difference between the last two?
x11 login startx xinit
add a comment |Â
up vote
39
down vote
favorite
up vote
39
down vote
favorite
I found three configuration files.
.xinitrc
.xsession
.xsessionrc
I know that the first one is for using startx
and the second and third are used when using a display manager. But what is the difference between the last two?
x11 login startx xinit
I found three configuration files.
.xinitrc
.xsession
.xsessionrc
I know that the first one is for using startx
and the second and third are used when using a display manager. But what is the difference between the last two?
x11 login startx xinit
x11 login startx xinit
edited May 9 '16 at 0:04
Gilles
517k12410321560
517k12410321560
asked May 8 '16 at 16:27
lockdoc
311138
311138
add a comment |Â
add a comment |Â
2 Answers
2
active
oldest
votes
up vote
41
down vote
accepted
~/.xinitrc
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).
~/.xsession
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
~/.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.
.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.
add a comment |Â
up vote
3
down vote
According to another discussion, startx + ~/.xsession and no ~/.xinitrc, results in reduced functionality (xfce4, sid)
Firstly:
.xsessionrc
is for holding global environment variables.
The emphasis is mine.
Secondly:
40x11-common_xsessionrc
in/etc/X11/Xsession.d
is sourced
before50x11-common_determine-startup
. So.xsessionrc
is read before
.xsession
and any environment variables set will become available to
applications run by the commands in.xsession
.
Further reading:
- Xsession - initialize X session
- Understanding *NIX Login Scripts
add a comment |Â
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
41
down vote
accepted
~/.xinitrc
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).
~/.xsession
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
~/.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.
.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.
add a comment |Â
up vote
41
down vote
accepted
~/.xinitrc
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).
~/.xsession
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
~/.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.
.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.
add a comment |Â
up vote
41
down vote
accepted
up vote
41
down vote
accepted
~/.xinitrc
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).
~/.xsession
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
~/.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.
.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.
~/.xinitrc
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).
~/.xsession
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
~/.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.
.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.
answered May 9 '16 at 0:04
Gilles
517k12410321560
517k12410321560
add a comment |Â
add a comment |Â
up vote
3
down vote
According to another discussion, startx + ~/.xsession and no ~/.xinitrc, results in reduced functionality (xfce4, sid)
Firstly:
.xsessionrc
is for holding global environment variables.
The emphasis is mine.
Secondly:
40x11-common_xsessionrc
in/etc/X11/Xsession.d
is sourced
before50x11-common_determine-startup
. So.xsessionrc
is read before
.xsession
and any environment variables set will become available to
applications run by the commands in.xsession
.
Further reading:
- Xsession - initialize X session
- Understanding *NIX Login Scripts
add a comment |Â
up vote
3
down vote
According to another discussion, startx + ~/.xsession and no ~/.xinitrc, results in reduced functionality (xfce4, sid)
Firstly:
.xsessionrc
is for holding global environment variables.
The emphasis is mine.
Secondly:
40x11-common_xsessionrc
in/etc/X11/Xsession.d
is sourced
before50x11-common_determine-startup
. So.xsessionrc
is read before
.xsession
and any environment variables set will become available to
applications run by the commands in.xsession
.
Further reading:
- Xsession - initialize X session
- Understanding *NIX Login Scripts
add a comment |Â
up vote
3
down vote
up vote
3
down vote
According to another discussion, startx + ~/.xsession and no ~/.xinitrc, results in reduced functionality (xfce4, sid)
Firstly:
.xsessionrc
is for holding global environment variables.
The emphasis is mine.
Secondly:
40x11-common_xsessionrc
in/etc/X11/Xsession.d
is sourced
before50x11-common_determine-startup
. So.xsessionrc
is read before
.xsession
and any environment variables set will become available to
applications run by the commands in.xsession
.
Further reading:
- Xsession - initialize X session
- Understanding *NIX Login Scripts
According to another discussion, startx + ~/.xsession and no ~/.xinitrc, results in reduced functionality (xfce4, sid)
Firstly:
.xsessionrc
is for holding global environment variables.
The emphasis is mine.
Secondly:
40x11-common_xsessionrc
in/etc/X11/Xsession.d
is sourced
before50x11-common_determine-startup
. So.xsessionrc
is read before
.xsession
and any environment variables set will become available to
applications run by the commands in.xsession
.
Further reading:
- Xsession - initialize X session
- Understanding *NIX Login Scripts
edited 10 mins ago
answered May 8 '16 at 17:46
Thomas Dickey
51.1k593163
51.1k593163
add a comment |Â
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f281858%2fdifference-between-xinitrc-xsession-and-xsessionrc%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password