xmonad is a fast and lightweight tiling window manager for X11, written, configured, and extended in the purely-functional programming language Haskell.
USE flags for x11-wm/xmonad A tiling window manager
||Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally|
||Include coloured haskell sources to generated documentation (dev-haskell/hscolour)|
||Allow ignoring of keyboard autorepeat.|
||Add support for software performance analysis (will likely vary from ebuild to ebuild)|
||Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)|
There are two ways to install XMonad. The Gentoo recommended method is to use Portage so that the package will be integrated into the system's package database.
Merge the x11-wm/xmonad package:
emerge --ask x11-wm/xmonad
It is possible to install using cabal, although it is not the Gentoo recommended method for installation system-wide packages. When choosing this route proceed with caution (Portage will not track xmonad)!
cabal install xmonad
Start xmonad using a display manager or the startx command.
If want to use startx and want elogind support, setup ConsoleKit and create the following file:
exec dbus-launch --sh-syntax --exit-with-session xmonad
XMonad itself can be configured through ~/.xmonad/xmonad.hs which is written in Haskell.
Minimal configuration file with default configuration:
import XMonad main = xmonad $ def
Once you changed your config file you should compile it and restart XMonad.
In most cases to write a config file you need additional features provided by the xmonad-contrib library. You can install it from x11-wm/xmonad-contrib
emerge --ask xmonad-contrib
OR using cabal:
cabal install xmonad-contrib
Adding status bars
Unlike many other window managers, XMonad does not have any built-in status bars. Instead of this it can pipe required information to an external program. Usually, xmobar, or dzen is a good choice for a status bar.
emerge --ask x11-misc/xmobar
emerge --ask x11-misc/dzen