[xmonad] Understanding how to build and run xmonad

Adam Vogt vogt.adam at gmail.com
Sat Jan 15 19:45:08 CET 2011


Hello Weeble,

My suggestions follow inline,

* On Saturday, January 15 2011, Weeble wrote:

...
>Have I done something wrong? At first I had even more problems, but I
>believe they were caused by my reckless use of "cabal install
>$SOMETHING" to try to fix previous problems, but which just ended up
>stacking more and more errors about conflicting versions. I got rid of
>these by doing "ghc-pkg list" and "ghc-pkg unregister --user
>$SOMETHING" for everything that turned up in the list of user
>packages.

It seems that cabal install pulled in the xmonad-core-0.9.2 which is on 
hackage, instead of using the one you built from the darcs repository 
(whose version 0.9.1 until a few minutes ago). The release on hackage and 
the repos on code.haskell.org are mutually incompatible.


>I have a few questions:
>1. How can I get rid of everything and start again?

rm ~/.cabal; rm ~/.ghc

>2. What do ghc-pkg and cabal install actually do, and where do they
>put things? Does one of them call the other?

They put files in those directories named above if you run them as an 
unprivileged user.

>3. When I install xmonad, where does it go?

same as 1,2

>4. What is the relationship between the xmonad executable and my xmonad.hs file?

The  ~/.cabal/bin/xmonad  calls ghc to compile your xmonad.hs, and then 
runs that executable.

>5. When does xmonad.hs get read and processed? Every time xmonad runs?
>Every time I edit it? Only when I do something to specifically request
>it?

It is recompiled whenever xmonad starts and the modification time of 
xmonad.hs is newer than the generated executable 
(~/.xmonad/xmonad-$arch-$os). When you request a recompile "xmonad 
--recompile" or M-q modification times do not matter.

>6. When there's an error in my xmonad.hs, what am I left with? Does
>xmonad behave as it did with the last known good xmonad.hs? Or does it
>use some sort of safe configuration?

It runs the ~/.xmonad/xmonad-$arch-$os, which is the last good 
configuration. If that doesn't exist, you're stuck with the default.

>7. What should I do in the future to avoid getting myself in a mess?
>Assuming that I will from time to time want to at least try out the
>latest version from darcs, what should I get using apt-get, what
>should I get with cabal, what (if anything) should I download source
>distributions for and what should I get from darcs?

You can run ~/.xmonad/xmonad-$arch-$os as your window manager even if your 
xmonad install is broken. But then changes to the xmonad.hs will be 
ignored, at least until you get a working xmonad install with the 
~/.cabal/bin/xmonad in your path.

Adam



More information about the xmonad mailing list