xmonad
A tiling window manager configured in Haskell.
xmonad is a small, hacker-friendly tiling window manager written in Haskell. The user's xmonad.hs configuration file is also Haskell code that is compiled into the running window manager on each invocation, which means configuration is fully type- checked and can use the entire Haskell ecosystem (lazy evaluation, type classes, monads) for layout logic.
Layouts, keybindings, and behaviour can be composed from a large library of contrib modules. Want a tabbed layout, a multi-column variant of master-and-stack, automatic floating for specific applications, gaps between windows, or a status bar that updates in response to workspace changes? It's a contrib import and a few lines of Haskell code.
Spencer Janssen, Don Stewart, and Jason Creighton started xmonad in 2007. The project's core is famously small — under a thousand lines of Haskell — which has helped it remain remarkably stable across years. Users who enjoy Haskell tend to love xmonad; users who do not typically prefer i3, Sway, or bspwm.
Install
Debian/Ubuntu: sudo apt install xmonad Fedora/RHEL: sudo dnf install xmonad Arch: sudo pacman -S xmonad
Authors
- Spencer Janssen, Don Stewart, Jason Creighton (creators)