I have started using xmonad as my primary window manager this year. I had first tried xmonad while learning Haskell. xmonad is a tiling window manager, which means that windows on your desktop border upon each other without overlapping. A side effect of that is that the windows get resized relative to the other windows on the screen.

Here are some more screenshots.
There is no way of absolutely claiming whether a tiling window manager is better or not. It might depend on your tasks, your monitor and even the applications that you use. It suits me the best because I spend minimum amount of time moving and resizing windows, and even if I have to do it, I can do it quickly with key combinations instead of having to move the mouse.
xmonad was the first tiling manager I tried, but I ended up choosing it after trying a couple of other ones. Here’s why:
- xmonad is minimalistic, light-weight and fast.
- There are no window decorations with xmonad, so no minimize/maximize/close keys and fancy borders. It feels like running every application in fullscreen mode in its own space. xmonad makes you think in terms of spaces instead of windows. As an unexpected side-benefit, this has saved quite some time by eliminating the extremely addictive habit of changing desktop themes and window decorations.
- xmonad lets me move across windows according to the layout. The traditional Alt-Tab lets me choose windows either by their execution or selection order. Here, I can move between windows in right, left, top, down directions. And yes, I use the vim-like keybindings to do this.
- It is equally easy to move between workspaces or move windows across workspaces.
- xmonad also supports the floating mode nicely so that applications that demand it, like Gimp or MPlayer, can be used efficiently.
- I have done away with the task list altogether as I can see the applications running with a couple of keystrokes.
- xmonad is extremely extensible.
- xmonad is highly configurable, and it deploys my configuration changes without a restart. I can configure everything from the border width to hot key for a certain action to list of floating applications to workspace specific layouts to the various layouts I want to use.
- xmonad enjoys company of nice peripheral applications like xmobar and dzen2 for status bars and dmenu or its own shell prompt for launching applications.
Apart from this, xmonad can be run as a window manager for popular DEs like Gnome, KDE and XFCE. However, a community of peripheral applications like dzen2 and xmobar for status bars, and dmenu and xmonad’s very own shell prompt helps me to run it by itself.
I have also started using some new tools and some old tools in new ways:
- my new console is a tabbed rxvt-unicode
- I use more vim than gvim, as I can quickly do an edit without affecting the window layout
- I am using more text configuration files instead of settings managers
- my Web browser is always in the full-screen mode
- I have learnt to distribute windows across different workspaces
Having praised xmonad, I will say that everyone might not find it as productive. If you are not using your computer for a long time, or if you are more of a mouse-user than a keyboard user, you will hate xmonad. Also, some of its benefit might make you avoid it. For example, it just switches off a lot of decorative stuff like window decorations or you do not get to see the desktop wallpaper for most of the time. The configuration file is in Haskell. Though this lets you do a lot many things through the configuration file, it can turn you off if you do not like Haskell.
However, if you do spend a considerable time of the day in front of your computer, and if you would like to use the keyboard a lot, try a tiling window manager. If you want to give Haskell a shot, or if you are learning it, there is no better application than xmonad to try it out.

March 29th, 2009 at 3:17 pm
I’m a new Xmonad user who absolutely shares your enthusiasm. Since switching to this WM I have started to like doing everything using terminal and in my opinion I’m more productive then before. I’m looking forward to learn new things about Xmonad.
One thing I would like to recommend you is to check conky. It has a large number of system monitor plugins which allow to have your system stats always in sight. Ofcourse it renders to the desktop which is not good if we use a tiling manager. However if you are using Arch Linux there is a conky-cli package which displays to stdout. On other distributions it is quite easy to compile conky without X support. I found conky + dzen2 to be a great combination.
June 5th, 2009 at 7:57 pm
Dude… xmonad is awesome. Just started using it last week. haven’t had time to do any config or customization yet, but its so nice to never have to touch the mouse. One thing i can recommend as an extension for firefox is Vimperator. It’s a vim-based interface for firefox. Does away with menubars and toolbars and just lets u navigate with the keyboard = a perfect tool for use in conjuction with xmonad!
may the force be with you!