Is xinitrc executed when logging in?
Solution 1
~/.xinitrc
is only read if you start X11 with startx
(or anything that calls xinit
). If you log in in graphics mode, the display manager chooses a session to start. Each session manager or desktop environment has its own startup script(s), if any.
Most systems automatically load resources from ~/.Xresources
as part of the default X11 startup scripts. Try renaming your resources file to ~/.Xresources
.
Solution 2
.xinitrc
is exectued when you explicitly run xinit
(startx
ultimately calls xinit
)to start an X-server. Mostly this doesn't happen as current Linuxes use desktop managers, which diretly start a X-Server and then run /etc/X11/Xsession <desktopenvironment>
, where <desktopenvironment>
is the value of any line Exec=
from a file in /usr/share/xsessions
, for instance
Exec=startxfce4
if you selected XFCE as sessiontype.
On at least Debian based systems the scripts in /etc/X11/Xsession.d/
are sourced (!) in order. Mostly all these scripts set stuff up and/or modify a variable STARTUP
which is eventually used in the line
exec $STARTUP
So technically you could write a /usr/share/xsession/xinitrc.desktop
file which lets you select a session which will run ~/.xinitrc
.
Related videos on Youtube
user2384250
Updated on September 18, 2022Comments
-
user2384250 over 1 year
I have a
~/.xinitrc
with the following contentxrdb -merge $HOME/.Xdefaults
this
xinitrc
is basically useless because it's not loaded when the user logs in, I don't think that I'm doing something wrong because the same command works on thebash
, my question is: doesxinitrc
recognize the environment variables?-
phunehehe almost 11 yearsAre you using something like
startx
to start X? I don't think your.xinitrc
will be read if you are using a login manager. -
user2384250 almost 11 years@phunehehe I'm using ubuntu 13.04 64 bit
-
phunehehe almost 11 yearsThen you are using Ubuntu's default login manager (
lightdm
). You may want to add a start-up application instead. -
Hi-Angel over 9 yearsI am just solved alike problem: I am tried to set Awesom as my window manager, and it's Wiki recommended to use
.xinitrc
. In fact it is do not work for me, but I occasionally found that the.xsessionrc
instead works.
-
-
CMCDragonkai over 7 yearsDoesn't the display manager need X started as well? So why doesn't the display manager itself need
~/.xinitrc
prior to launching? -
Bananguin over 7 yearsYes, display managers require an Xserver. Starting X directly, i.e., running the
Xorg
binary does not care for~/.xinitrc
. This is what usually happens today. The DM itself does as it pleases and requires "only" a running Xserver -
CMCDragonkai over 7 yearsI found out that DMs have their own configuration that can run commands before the DM launches.