I have the following startupHook
in my xmonad.hs
, startupHook = spawn "~/.xmonad/autostart"
I am starting many apps and daemons in this script and it is written to run only once on startup. But this is being run everytime I hit Mod-q
, i.e., to reload and test out my changes to xmonad.hs
.
I could conditionally run the programs in the autostart script but that turned out to be quite flaky. So, I was wondering if there is a way to xmonad to run this startup hook only on the initial startup and not on reloads.
I tried googling around but came up empty. Is such a thing possible?
Edit: I am running xmonad 0.11 installed from cabal on ubuntu 12.04.
Best Answer
As mentionned in the FAQ, the
startupHook
is run each time xmonad is restarted with MOD+Q.Also from a software point of view, it seems important that a restart is not different than a stop followed by a start. Thus there is no way to differentiate a start from a restart from within Xmonad. Hence each time Xmonad is started, it will launch the
startupHook
To run programs on startup, they propose to use the usual manner by adding them to
.xsession
or.Xinitrc
.In your case you can just put
at the end of your
.Xinitrc
file.