xmonad logo

      xmonad

      a tiling window manager

about

Xmonad is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use. All features of the window manager are accessible from the keyboard: a mouse is strictly optional. Xmonad is written and extensible in Haskell. Custom layout algorithms, and other extensions, may be written by the user in config files. Layouts are applied dynamically, and different layouts may be used on each workspace. Xinerama is fully supported, allowing windows to be tiled on several screens. A guiding principle of the design is predictability: users should know in advance precisely the window arrangement that will result from any action, leading to a simpler user interface. Read more.

features

  • Automatic window tiling and management
  • First class keyboard support: a mouse is unnecessary
  • Full multihead/Xinerama support
  • XRandR support to rotate, add or remove monitors
  • Per-workspace layout algorithms
  • Per-screen status bars
  • Dynamic restart preserving workspace state
  • Tiny code base (~500 lines of Haskell)
  • Fast, small and simple.
  • Easy, powerful customisation

download

stable

source

Xmonad uses a Cabal build system. For dependencies and build instructions, consult the README.

screenshots

(Clockwise from top-left) Screenshots of tall mode, fibonacci spiral tiling with a dzen statusbar, an example of X compositing for window shadows, a three-head Xinerama setup, using gimp with mosaic tiling, and wide mode with dzen as a status bar.

extensions

A good number of contributed extensions are available for Xmonad, implementing unusual layout algorithms, window manipulation operations and menu functions. Extensions are available from the contrib repository. New extensions should be contributed as patches to this package.

documentation

Documentation on using and extending xmonad:

related work and useful tools

Software that works nicely with tiling

  • dzen, an extensible status bar
  • rxvt-unicode, a better terminal
  • vimperator, vim ui for firefox
  • unclutter, hide the mouse cursor
  • gapcalc, calculate height of an X font

Related projects

community

Join the xmonad developer and user community:

developers

Xmonad is developed by:

news