Xmonad

From Gentoo Wiki
Jump to: navigation, search
Resources

xmonad is a fast and lightweight tiling window manager for X11 written, configured and extended in the purely-functional programming language Haskell.

Installation

USE flags

USE flags for x11-wm/xmonad A tiling window manager

default-term Pull terminal specified in default xmonad config to be a bit less hostile by default. local
doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally global
hscolour Include coloured haskell sources to generated documentation (dev-haskell/hscolour) global
no-autorepeat-keys Allow ignoring of keyboard autorepeat. local
profile Add support for software performance analysis (will likely vary from ebuild to ebuild) global
test Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in make.conf/package.use anymore global

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.

Emerge

Merge the x11-wm/xmonad package:

root #emerge --ask x11-wm/xmonad

Cabal (unsupported)

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)!

user $cabal install xmonad

Configuration

Starting

Start xmonad using a display manager or the startx command.

If want to use startx and want ConsoleKit support, setup ConsoleKit and create the following file:

FILE ~/.xinitrc
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session xmonad

~/.xmonad/xmonad.hs

XMonad itself can be configured through ~/.xmonad/xmonad.hs which is written in Haskell.

Minimal configuration file with default configuration:

CODE Primitive xmonad.hs
import XMonad

main = xmonad $ defaultConfig

Once you changed your config file you should compile it and restart XMonad.

user $xmonad --recompile
user $xmonad --restart

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

root #emerge --ask xmonad-contrib

OR using cabal:

user $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.

xmobar

Install x11-misc/xmobar:

root #emerge --ask x11-misc/xmobar

dzen

Install x11-misc/dzen:

root #emerge --ask x11-misc/dzen

External resources