Xmonad/startup
< Xmonad
This assumes you're using startx or something else that respects .xinitrc (and not, say, a display manager that does its own thing), but is nevertheless quite detailed:
11:05 < mauke> symphonik: ok, let me describe the flow of execution 11:05 < mauke> we start at .xinitrc 11:05 < mauke> .xinitrc does 'exec xmonad' 11:05 < mauke> that looks for an executable called 'xmonad' in your $PATH 11:06 < mauke> this is what you get when you "install xmonad" 11:06 < mauke> it's part of the haskell package 11:06 < mauke> this executable then checks if you have a file called ~/.xmonad/xmonad.hs 11:07 < mauke> if you do, and it's newer than ~/.xmonad-$arch-$os (or if that latter file doesn't exist), it invokes ghc to compile ~/.xmonad/xmonad.hs to ~/.xmonad/xmonad-$arch-$os 11:07 < mauke> (if ghc returns an error, xmonad spawns a message window to tell you about it) 11:08 < mauke> then xmonad executes ~/.xmonad/xmonad-$arch-$os 11:08 < mauke> if that fails (e.g. because the file doesn't exist), it does the job itself 11:08 < mauke> by running as xmonad-with-default-configuration