From HaskellWiki
Jump to: navigation, search

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
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