Is xinitrc executed when logging in?

10,005

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.

Share:
10,005

Related videos on Youtube

user2384250
Author by

user2384250

Updated on September 18, 2022

Comments

  • user2384250
    user2384250 over 1 year

    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?

    • phunehehe
      phunehehe almost 11 years
      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.
    • user2384250
      user2384250 almost 11 years
      @phunehehe I'm using ubuntu 13.04 64 bit
    • phunehehe
      phunehehe almost 11 years
      Then you are using Ubuntu's default login manager (lightdm). You may want to add a start-up application instead.
    • Hi-Angel
      Hi-Angel over 9 years
      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.
  • CMCDragonkai
    CMCDragonkai over 7 years
    Doesn't the display manager need X started as well? So why doesn't the display manager itself need ~/.xinitrc prior to launching?
  • Bananguin
    Bananguin over 7 years
    Yes, 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
    CMCDragonkai over 7 years
    I found out that DMs have their own configuration that can run commands before the DM launches.