The xmonad dev team is very proud to announce that the bluetile merge was completed today. The Bluetile branch is an experimental xmonad variant  whose:

focus lies on making the tiling paradigm easily accessible to users coming from traditional window managers by drawing on known conventions and providing both mouse and keyboard access for all features. It also tries to be usable ‘out of the box’, requiring minimal to no configuration in most cases.

Jan Vornberger, the developer behind bluetile, has been working hard to ensure xmonad supports bluetile fully. The upcoming stable release of xmonad will support the bluetile extensions directly, meaning a whole new range of interface and usability options for xmonad users.

You can see a demo of the bluetile model:

To find out more about the bluetile branch see the project homepage, or see Jan’s talk (in German).

The next steps though are to,

  • provide an XMonad.Config.Bluetile module in xmonad-contrib
  • And release the stable xmonad supporting the new bluetile code

If you want to try out the bluetile code, your best bet at the moment is to move to the darcs version of xmonad, and start  there.

Stay tuned!

We’re very excited to announce the official release of xmonad 0.9! We think this is a great release.

You can download xmonad 0.9 from Hackage or from your package system. And if you’re using the previous version of xmonad, you can upgrade on the fly — without losing your session.

xmonad is a leading tiling window manager, known for its lightness, reliability, extensibility and efficiency. It supports true multiheaded tiling, and rich, rapid customisation. It is also highly portable, running on regular desktops, laptops, netbooks, phones, game consoles, the OLPC, and more.


More info

The xmonad release announcement is here. We also have a guide to frequently asked questions, a great keybindings reference, and a list of what’s new since 0.8. And see Tombuntu’s guide to xmonad.


Some of the highlights of the 0.9 release include:

  • Actions.SpawnOn: windows go to the workspace they were launched on, even if you’re no longer viewing that workspace. Especially handy for slow-starting apps like firefox.
  • Actions.GridSelect: graphically go to, select and do things with windows, workspaces, prompts, …
  • Focus changes across screens with mouse movement, no longer requiring a click.
  • New –restart command line flag to restart a running xmonad process.
  • Supports for multi-module local configuration files
  • Support for user-defined X event handling
  • xmonad comes with 180 extensions for enhancing functionality
  • Over 3000 commits have been made to the project.

Information, screenshots, documentation, tutorials and community resources are available from the xmonad home page. And you can follow us on twitter.

The slides from the Haskell Workshop 2007 talk on the design and implementation of xmonad are now online.Original PDF

xmonad has come a long way since then. It is now 2.5 years old, distributed on dozens of platforms, had hundreds of developers contribute, several thousand patches (particularly in the extensions library), and hundreds of thousands of downloads.


contribs review


by Daniel Wagner
XMonad.Layout.IndependentScreens can be used to have independent sets of workspaces on each screen (like dwm’s workspace model). Note that this module may be superseded soon by module Braden Shepherdson and Wirt Wolff are developing, which provides more rich set of features.

by Nelson Elhage
XMonad.Actions.PhysicalScreens allows you to manipulate screens ordered by physical location instead of relative to each other (as reported by Xinerama) rather than their ScreenID’s (which are arbitrarily determined by your X server and graphics hardware). With help of this module you can name screens by relative layout, switch to a given screen or move a window there.

by Konstantin Sobolev
Allows to have several floating scratchpads running different applications.

by Nicolas Pouillard
XMonad.Actions.TopicSpace allows to organize your workspaces on a precise topic basis. So instead of having a workspace called work you can setup one workspace per task. Here we will call these workspaces topics. The great thing with topics is that one can attach a directory that makes sense to each particular topic. One can also attach an action that will be triggered when switching to a topic that does not have any windows in it. So one can attach our mail client to the mail topic, some terminals in the right directory for the xmonad topic… This package also provides a nice way to display your topics in a historical way using a custom pprWindowSet function. You can also easily switch to recents topics using this history of last focused topics.

by Konstantin Sobolev
XMonad.Layout.ComboP is a layout that combines multiple layouts and allows to specify where to put new windows. It mostly acts as CombineTwo, but also takes a predicate which controls new windows placement. From another point of view, it generalizes IM layout allowing multiple windows to be selected and organized in the separate area using arbitrary layout.

by Quentin Moser
XMonad.Hooks.FloatNext provides actions (that can be set as keybindings) to automatically send the next spawned window(s) to the floating layer.

by Quentin Moser
XMonad.Hooks.Place module provides a ManageHook that automatically places floating windows at appropriate positions on the screen, as well as an X action to manually trigger repositioning.

GridSelect improvements
Daniel Schoepe generalized XMonad.Actions.GridSelect so that now it can be used to select arbitrary things, not just windows. For example you can use it to spawn an application from a given list in GridSelect fashion. Also GridSelect now allows selecting an element by a click with the left mouse button. “finally managed to get xmonad and xmonad-contrib working on xubuntu Intrepid Ibex, on the Playstation 3.”

Well done!!

Here are the download statistics for source tarballs and the darcs repository of xmonad, going back to April 2007, when we initially released version 0.1




From April 2007 to March 2009 xmonad core source releases were downloaded more than 35 thousand times. In addition, the darcs repository for xmonad was cloned 24 thousand times, and the xmonad-contrib extensions library was cloned 16 thousand times. In total, xmonad source has been downloaded just over 75 thousand times in 22 months.

By March 2009, the 0.8 release makes up just over 90% of xmonad source downloads. The extensions library also represents 45% of xmonad checkouts now.

The most active source download time was December 2007, prior to xmonad binary packaging in Linux distributions removing the need to build from source. All major distributions currently ship with the current release of xmonad, making source builds unecessary.

These numbers only count xmonad tarball releases on, and the darcs repositories hosted on It measures those intending to build xmonad from source, by hand (or with cabal). It does not include any downloads from mirrors, such as those provided by Linux and BSD distributions, and it doesn’t track binary installations via the Linux distributions (particularly Ubuntu, Debian, Fedora, Gentoo and Arch).

And, finally, we graph xmonad source installs per month against Debian popcon statistics (to see whether there’s some correlation between the decline in source downloads, and a rise in binary installs from distributions). We directly overlay the popcon statistics from Debian:


Tom Dryer has written a great introduction to using xmonad on ubuntu.

What good is having a large display if you’re constantly rearranging windows to fit them on the screen? I got tired of try to fit a web browser with other smaller windows and decided to try xmonad, a tiling window manager that could do this for me.

Here’s the xmonad contrib library visualised with cabalgraph. Thanks for all the contributions!

xmc-fdp has a nice post describing a new xmonad layout for  the gimp.

Read the full story.