Navigation

Note added 14 December 2013
I'm keeping this post for historical reasons but I now use spectrwm not xmonad. For my reasons, please see Four tiling window managers.

A week ago I posted a piece about using Icewm to imitate, more or less, the function of a tiling window manager like Ratpoison. This worked pretty well but I still felt an attraction to the idea of a pure tiling WM. I don't want 'eye candy' such as window decorations or background images, nor do I find a need for icons or docks. I use only a small range of programs with any frequency (Iceweasel/Firefox, Mutt, and Vim/Gvim), and I don't need a lot of windows open - in fact, they would be a distraction. These days I increasingly feel drawn to bare simplicity, with no frills or fripperies.

So I went back to looking at tiling WMs again, and after some experiments decided that Xmonad was pretty close to what I was looking for. It can be driven almost entirely via the keyboard, but, unlike Ratpoison, you can use the mouse as well if you want to. There is an option to have floating windows, which means that the Gimp, for example, is usable. (I don't need it much but just occsionally I do.)

When Xmonad starts you see a blank black screen, which is about as basic as you can get! If you press the Mod key (Alt by default) plus Shift and Return a text terminal appears. Pressing the same keys again produces a new window, with the screen split vertically in two. Further presses give more windows in a vertical column on the right side of the screen. With Mod+Space you can change the display to show the windows tiled horizontally or you can have just one window occupying the whole screen.

Other simple key combinations allow you to move the focus from one window to another, change the size of the 'Master' window, and so on. You can use different workspaces, as you do in Icewm, and you can move any window to a different workspace, again as you do in Icewm.

Currently I'm using Xmonad on all my computers and am likely to stick with it. This is the first time in years that I've been tempted away from Icewm. Why am I making the change?

I wouldn't say Xmonad offers any clear advantage over Icewm. The functionality in both is much the same. As much as anything, I suppose, my current preference for Xmonad is aesthetic and conceptual - I like its uncompromising simplicity. But perhaps I will switch back in the future - who knows? (Perhaps I'll even end up with something like Compiz, though I doubt it.)

Actually, if you really want to tart Xmonad up you can do so with the help of a large number of bolt-on modules provided by external contributors. See the extensive documentation for details. For example, you can arrange the windows in a circle or even in a Fibonacci spiral!

Any disadvantage in using Xmonad? Yes, one obvious one: instead of configuration being done in text files, as it is in Icewm, you have to use the Haskell programming language and recompile. But this can be done without restarting Xmonad and at least there is only one file to edit. Still, I have to admit that it was this dependence on Haskell that put me off trying Xmonad for a long time and instead caused me to look at Ratpoison, which uses a text file. But, in practice, the Haskell business is not as bad as I'd feared it would be.

Most of the defaults in Xmonad were fine for me. I did need to use a different Mod key, because my Alt key is doing a lot of things in Vim. Also, I wanted wider and more obvious window margins (they change colour when the window receives focus). But I quite easily found sample configuration files on the Internet which I could adapt to my needs without the need to learn Haskell. Perhaps I will do so in the future, to try out some more ambitious things, but for the moment it's fine.

I certainly realise that Xmonad, or any other tiling WM, is never going to suit the majority of people, especially not those who expect something vaguely Windows-like. But it does appeal to some, as a quick trawl through Google will show. For anyone thinking of trying it out who still feels a bit apprehensive, I've given more details about my experience to date on my Linux page Using Xmonad.