[xmonad] thinking of switching...

Norbert Zeh nzeh at cs.dal.ca
Thu Sep 8 03:22:37 CEST 2011

Allan Wind [2011.09.07 1741 -0400]:
> On 2011-09-07 17:01:55, serialhex wrote:
> > my Q is:  how much haskell do i need to know to use it effectively?  at the
> > moment i am pre-alpha grasshopper status in my haskell coding skills, (i
> > know haskell exists and is high on my list of languages to learn) though i
> > don't want to have to become a haskell guru in order to be able to use
> > xmonad.  so really, what's the learning curve like to start using xmonad?
> It depends what you want to do, of course.
> I am happy with my 19 line configuration file constructed by 
> reviewing the excellent documentation and I think a couple of web 
> searches.  No prior knowledge of Haskell and next to none now.  
> Why not give a try and see how it goes?

I second that.  I know Haskell reasonably well by now (it's my #1
language for any project where I don't have a good reason to use
something else) but I would consider most of my 267-line xmonad.hs to be
little more than specifying configuration options that happen to be
written in Haskell but whose meaning should be clear even to people
without any knowledge of Haskell.

You need to know more Haskell if you want to do stuff that's currently
not in core xmonad or in the quite extensive xmonadcontrib extension
library (that's why my xmonad.hs is so long).  But then, since you say
Haskell is high on your list of languages to learn, once you reach the
point that you'd be interested in a feature that's currently not there,
trying to implement this feature may just be the right kind of toy
project to get your feet wet and dig a little deeper into the language.

One thing that I can see to be a bit of a challenge is to get the types
of things in your configuration file right.  When I started using
xmonad, I was constantly bitten by trying to bind pure functions that
manipulate the window list of a workspace to a key, while a key can only
be bound to an action in the X monad.  However, if you run into any
issues like that, there's always the mailing list ;) and it doesn't take
too long to get a hang of it.

I came to xmonad from awesome 3 years ago.  I was quite hooked on
awesome back then but had enough when it segfaulted on me when working
to meet a conference deadline.  So I was looking for something more
stable and with similar functionality, found xmonad, and it didn't crash
on me once in these 3 years.  The Haskell compiler being so anal about
lots of things, including types checking out, is I think a big part of
why xmonad is so stable.


More information about the xmonad mailing list