Monday, April 2, 2007

xmonad

If you've followed #haskell@freenode the last month, you've had to try hard to not hear about heard about xmonad. It's a lightweight window manager, a clone of dwm, similar to ion, ratpoison, wmii and larswm. To be more precise it's a tiling window manager which means that it makes sure that no windows are overlapping. It can take a while to get used to, but it's well worth the effort. While xmonad still is relatively easy to learn, the Ion manifest still applies. It will help you to put down the mouse. The impressive part is that while one of dwm's goals is to be <2000 lines of C, xmonad has similar features in <400 lines of Haskell. It also does a couple of things dwm doesn't, namely automated testing of the internal window manager properties (with QuickCheck) and support for xinerama. (The lack of xinerama is, otoh, listed as a feature of dwm). See a screenshot here. It's not yet released, so you'll have to "darcs get" the sources, instructions on the homepage. Unless you're running Gentoo Linux with the haskell overlay, in which case a "emerge xmonad-darcs" will do. Give it a try and give feedback on #haskell!

9 comments:

David said...

Just a couple of points. Firstly, dwm doesn't support xinerama in the sense that the layout isn't terribly nice on a xinerama setup, rather than not working. (I had some patches floating around for dwm a while ago, but after the removal of the titlebars I stopped updating them while I'm figuring out the least "patch pain" way of making stuff available along to normal users and those who want to keep the titlebars). Secondly, for those alergic to IRC -- or rather, unable to engage in real-time discussions -- is there any other email/forum for discussing xmonad?

cheers, dave tweed

Lennart Kolmodin said...

Right, I've not used dwm nor xmonad with xinerama, just quoting the specs.

Currently I only know of IRC for discussions, perhaps a mailing list could be arranged? sjanssen, dons?

Lennart Kolmodin said...

xmonad mailing list has very recently been setup. Don't know if it's operational yet

Mark said...

What web browser is that in your screenshot (with the numbers next to all the links)?

I ask b/c I've been getting into elinks lately, but it'd be nice to still have a little bit of graphics in the pages as well.

Lennart Kolmodin said...

mark, it's called conkeror, available at
http://conkeror.mozdev.org/index.html

I do belieive there are other extensions too which might change less of firefox:
see the numberfox extension (I think)

and
http://weblogs.asp.net/jgalloway/archive/2006/06/14/Mouseless-Computing.aspx

and http://www.lifehacker.com/software/feature/hack-attack-mouseless-firefox-139495.php

vegai said...

About their 500 line goal. Current situation:

$ wc -l *hs
150 Config.hs
189 Main.hs
282 Operations.hs
3 Setup.lhs
252 StackSet.hs
122 XMonad.hs
998 total

Let's see if they can improve or whether they'll need to come up with a more modest goal :)

Thomas Schilling said...

dwm talks about lines of code, i.e., comments excluded, using the count_lines from GHC, we get:
$ perl ../count_lines *.hs
Code Comments
Config.hs 43 107
Main.hs 102 87
Operations.hs 177 105
StackSet.hs 114 138
XMonad.hs 53 69

TOTAL: 489 506

Lennart Kolmodin said...

Yes, it's code lines, not physical lines, as Thomas noted. This is of course also the only reasonable way to count loc, adding a comment doesn't add complexity to the project (hopefully.. :)).

And naturally, over time the goal changes as the required feature set grows.

vfdvgf said...
This comment has been removed by a blog administrator.