Hubbry Logo
search
logo
Xmonad
Xmonad
current hub
1542714

Xmonad

logo
Community Hub0 Subscribers
Write something...
Be the first to start a discussion here.
Be the first to start a discussion here.
See all
Xmonad

xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell.

Begun in March 2007, version 0.1 was announced in April 2007 as 500 lines of Haskell (which have since grown to 2000 lines). xmonad is a tiling window manager, akin to dwm, larswm, and StumpWM. It arranges windows in a non-overlapping pattern, and enables managing windows without using a mouse. xmonad is packaged and distributed on a wide range of Unix-like operating systems, including many Linux distributions, and Berkeley Software Distribution (BSD) systems.

While originally a clone of dwm (derivative in areas such as default keybindings), xmonad now supports features unavailable to dwm users such as per-workspace layout, tiling reflection, state preservation, layout mirroring, GNOME support and per-screen status bars; it can be customised by modifying an external configuration file and 'reloaded' while running. xmonad features have begun to influence other tiling window managers: dwm has borrowed "urgency hooks" from xmonad, has also included Xinerama support (for multihead displays) with release 4.8, and patches exist to reimplement xmonad's Fibonacci spiral layout.

In 2023 the man page stated:

By utilising the expressivity of a modern functional language with a rich static type system, xmonad provides a complete, featureful window manager [...], with an emphasis on correctness and robustness. Internal properties of the window manager are checked using a combination of static guarantees provided by the type system, and type-based automated testing. A benefit of this is that the code is simple to understand, and easy to modify.

Since xmonad's inception, when its small source code size of 500 lines of code was advertised, it has grown to about 2,000 lines as of 2023.

Extensions to the core system, including emulation of other window managers, and unusual layout algorithms, such as window tiling based on the Fibonacci spiral—have been implemented by the active community and are available as a library.

Along with obviating the need for a mouse, the xmonad developers make heavy use of semi-formal methods and program derivation for improving reliability and enabling a total line of code count less than 1200, as of version 0.7; window manager properties (such as the behavior of window focus) are checked through use of QuickCheck. This emphasis makes xmonad unusual in a number of ways; besides being the first window manager written in Haskell, it is also the first to use the zipper data structure for automatically managing focus, and its core has been proven to be safe with respect to pattern matches, contributing further to reliability. The developers write:

See all
User Avatar
No comments yet.