[xmonad] Opinions (skip if you are busy)
nzeh at cs.dal.ca
Sun Apr 5 18:03:20 EDT 2009
On Sat, Apr 04, 2009 at 10:38:43PM -0300, Ismael Carnales wrote:
> Hi, I was bothering some people on IRC and someone suggested me to
> send my opinions in an email, so here it goes:
> Sorry for the ranting, I'm willing to help in everything that I can, bye!
In general, I agree that documentation lowers the entry threshold and is
great for advertising something as awesome as xmonad (pun intended).
However, since awesome was mentioned here, I feel I have to put a few
things in perspective. [This is probably a bit OT.] As for the reasons
why people choose awesome or xmonad, they are varied. The fact that
xmonad was written in haskell was one of the reasons I switched from
awesome to xmonad, while it made a friend of mine switch the other way.
I guess it's a matter of taste. Here, however, are a few more objective
comments that make xmonad shine, even as far as documentation is
concerned, and which were part of the reasons I quickly fell in love
1) Stability (as in no crashes). Xmonad never crashed on me, while just
before switching, awesome did this about 3 times a day at random.
(I found xmonad rather by accident while looking for something that
could do what awesome does and is more stable.)
2) Stability (as in stable API). The lua api of awesome seems to change
quite frequently without warning, in ways that often break the
existing config file. The awesome developers consider this okay
because they consider awesome under development. Nothing wrong with
this, but it's a plus for xmonad that so far I never ran into API
changes that would cripple my current xmonad.hs.
3) Documentation. It is true that the xmonad API has the potential to
be improved (as everything does). In my experience, however, doing
rather standard customizations in awesome required trips to the mailing
list, while I can do much more in xmonad without asking someone by
digging through the available documentation. In fact, for some of the
things I asked about how to do things in awesome, I simply got the reply
to look at the C source code to find out which lua properties of the
objects it exports. I don't have to browse the source code in xmonad
to see which module lets me do what.
4) Abstraction. Once you move to a tiling window manager, you almost
immediately accept that you'll be building your own window manager from
the right set of lego bricks. That's true both for awesome and xmonad.
Doing this effectively depends on having the right abstractions,
playing with Duplo most of the time and playing with Lego only when
needed. I feel that xmonad does an excellent job here, making
moderately advanced configuration a piece of cake, and allowing the
manipulation of exactly the necessary information without touching (or
worrying about) anything else when doing slightly more advanced stuff
(such as writing one's own layout, for example). In awesome, on the other
hand, writing a new layout requires some quite low-level C hacking, and
even somewhat non-basic customization requires a bit of lifting in lua
where one feels the lack of the right abstractions.
Overall, in my opinion, the main thing that awesome has going over
xmonad is the built-in status bar (including widgets), but with apps like
xmobar and dzen, I don't really miss this in xmonad. As far as
documentation and ease of customization is concerned, I don't think
Ismael's post does xmonad justice, as it is miles ahead of awesome in my
experience. Of course, as I said, there's always room for improvement,
and Ismael's suggestions are good.
More information about the xmonad