Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a ~/.xinitrc with the following content

xrdb -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 the bash, my question is: does xinitrc recognize the environment variables?

share|improve this question
Are you using something like startx to start X? I don't think your .xinitrc will be read if you are using a login manager. – phunehehe May 28 '13 at 15:38
@phunehehe I'm using ubuntu 13.04 64 bit – user2384250 May 28 '13 at 15:44
Then you are using Ubuntu's default login manager (lightdm). You may want to add a start-up application instead. – phunehehe May 28 '13 at 15:48
@phunehehe thanks – user2384250 May 28 '13 at 15:53
I 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. – Hi-Angel Oct 12 '14 at 12:30

~/.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.

share|improve this answer

.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


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


So technically you could write a /usr/share/xsession/xinitrc.desktop file which lets you select a session which will run ~/.xinitrc.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.