Haskell. Windows are managed using automatic layout algorithms, which
can be dynamically reconfigured. At any time windows are arranged so
as to maximise the use of screen real estate. All features of the
window manager are accessible purely from the keyboard: a mouse is
entirely optional. Xmonad is configured in Haskell, and custom layout
algorithms may be implemented by the user in config files. A principle
of Xmonad is predictability: the user should know in advance precisely
the window arrangement that will result from any action.