xmonad is a tiling window manager for X11 that automatically arranges windows to fill the screen without gaps or overlap, with all features accessible from the keyboard.
The tool solves the problem of manual window management by automatically tiling windows across the screen and workspaces. It maximizes screen real estate by eliminating gaps and overlaps. xmonad is written in Haskell, and its core design treats the window manager itself as a library. Users configure and extend it by writing Haskell code in configuration files, allowing custom layout algorithms, key bindings, and other extensions. The project is accompanied by xmonad-contrib, a separate library of community-maintained tiling algorithms and extension modules that provide hundreds of additional features beyond the minimal core.
xmonad suits developers and power users comfortable with keyboard-driven workflows and willing to configure their environment in Haskell. It works well for those who want a lightweight, stable foundation they can customize extensively rather than a feature-complete out-of-the-box solution. The minimal core in this repository is designed to be stable and extensible, with the philosophy that users and the community build additional functionality through the contrib library rather than bloating the core. Xinerama support allows tiling across multiple physical screens.
The project maintains continuous integration across multiple build systems including Stack, Cabal, and Nix. The team actively welcomes contributions in various forms and provides multiple channels for community support including IRC and Matrix chat. Documentation covers installation, configuration, and usage, with dedicated resources for getting started and troubleshooting.