~/.xprofile allow you to execute commands at the beginning of the X user session, before the Window Manager is started. Therefore it cannot be used to start window-based applications. See Autostarting#Graphical for that.
/etc/X11/xinit/xinitrc.d/ folder is also a place for the same purpose. Users can place individual bash script files that will be executed in alphabetical order.
xprofile and xinitrc.d/* files are natively sourced by
- GDM (
- KDM (
- LightDM (
- LXDM (
Making it compatible with xinit
It is possible to make xprofile compatible with these programs:
All of these execute, directly or indirectly,
~/.xinitrc (usually copied from
/etc/X11/xinit/xinitrc if it doesn't exist. That's why we have to source xprofile from these files.
~/.xinitrc and /etc/X11/xinit/xinitrc and /etc/skel/.xinitrc
#!/bin/sh # Make sure this is before the 'exec' command or it won't be sourced. [ -f /etc/xprofile ] && source /etc/xprofile [ -f ~/.xprofile ] && source ~/.xprofile ...
xinitrc.d/* files are already sourced from the default xinitrc file.