All Topics  
Xmonad

 

   Email Print
   Bookmark   Link






 

Xmonad



 
 
xmonad is a tiling window manager
Tiling window manager

In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more popular approach of coordinate-based stacking of overlapping objects that tries to fully emulate the desktop metaphor....
 for the X Window System
X Window System

The X Window System is a computing software system and network protocol that provides a graphical user interface for networked computers. It implements the X Window System protocols and architecture and provides windowing system on raster graphics Visual display units and manages Keyboard and pointing device control functions....
, written in the functional programming language
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
 Haskell
Haskell (programming language)

Haskell is a standardized, purely functional programming language with non-strict programming language, named after logician Haskell Curry. The goals of the language are described as:...
.

Begun in March 2007, it is similar to dwm
DWM

The acronym DWM can stand for:*Desktop Window Manager - A compositing window manager included with Microsoft Windows*Deutsche Waffen und Munitionsfabriken...
, larswm
Larswm

larswm is a window manager for the X window system that follows the tiling window manager paradigm. Using ideas from the older 9wm window manager, it features automatic tiling and virtual desktops....
, StumpWM
Stumpwm

StumpWM is a tiling window manager for POSIX-compliant Unix-like operating systems running the X Window System. It started as a rewrite of the ratpoison window manager....
 and other members of the tiling window manager family, in that it strives to make it possible for the user to productively manage windows without the use of the mouse
Mouse (computing)

In computing, a mouse is a pointing device that functions by detecting dimension motion relative to its supporting surface. Physically, a mouse consists of an object held under one of the user's hands, with one or more buttons....
. Xmonad is packaged
Package management system

A package management system is a collection of tools to automate the process of installing, upgrading, configuring, and removing Software package from a computer....
 and distributed on a wide range of Unix-like
Unix-like

A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
 operating systems, such as Arch Linux
Arch Linux

Arch Linux is a Linux distribution intended to be lightweight and simple. The design approach of the development team focuses on "simplicity", elegance, code correctness and Minimalism ....
, Debian
Debian

Debian GNU/Linux is one of the most popular and influential computer operating systems composed of free software and open source software....
, Ubuntu, Gentoo
Gentoo Linux

Gentoo is a computer operating system built on top of the Linux Kernel and based on the Portage package management system. It is distributed as Free software....
, Sourcemage Linux, NixOS, FreeBSD
FreeBSD

FreeBSD is a Unix-like free software operating system descended from AT&T Unix via the Berkeley Software Distribution branch through the 386BSD and Berkeley Software Distribution#4.4BSD and descendants operating systems....
, NetBSD
NetBSD

NetBSD is a freely redistributable, open source version of the Unix-derivative Berkeley Software Distribution computer operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed....
 and OpenBSD
OpenBSD

OpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley....
.

While originally a clone
Clone (computer science)

In computing, a clone is a computer hardware or software system that is designed to mimic another system. computer compatibility with the original system is usually the explicit purpose of cloning hardware or low-level software such as operating systems....
 of dwm (derivative in areas such as default keybindings), xmonad supports features not available to dwm users such as per-workspace layout, tiling reflection, state preservation, layout mirroring, GNOME
Gnome

A gnome is a mythical creature characterized by its extremely small size and wiktionary:subterranean lifestyle. The word gnome is derived from the New Latin gnomus....
 support and per-screen status bars; it can be customised by modifying an external configuration file and 'reloaded' while running.






Discussion
Ask a question about 'Xmonad'
Start a new discussion about 'Xmonad'
Answer questions from other users
Full Discussion Forum



Encyclopedia


xmonad is a tiling window manager
Tiling window manager

In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more popular approach of coordinate-based stacking of overlapping objects that tries to fully emulate the desktop metaphor....
 for the X Window System
X Window System

The X Window System is a computing software system and network protocol that provides a graphical user interface for networked computers. It implements the X Window System protocols and architecture and provides windowing system on raster graphics Visual display units and manages Keyboard and pointing device control functions....
, written in the functional programming language
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
 Haskell
Haskell (programming language)

Haskell is a standardized, purely functional programming language with non-strict programming language, named after logician Haskell Curry. The goals of the language are described as:...
.

Begun in March 2007, it is similar to dwm
DWM

The acronym DWM can stand for:*Desktop Window Manager - A compositing window manager included with Microsoft Windows*Deutsche Waffen und Munitionsfabriken...
, larswm
Larswm

larswm is a window manager for the X window system that follows the tiling window manager paradigm. Using ideas from the older 9wm window manager, it features automatic tiling and virtual desktops....
, StumpWM
Stumpwm

StumpWM is a tiling window manager for POSIX-compliant Unix-like operating systems running the X Window System. It started as a rewrite of the ratpoison window manager....
 and other members of the tiling window manager family, in that it strives to make it possible for the user to productively manage windows without the use of the mouse
Mouse (computing)

In computing, a mouse is a pointing device that functions by detecting dimension motion relative to its supporting surface. Physically, a mouse consists of an object held under one of the user's hands, with one or more buttons....
. Xmonad is packaged
Package management system

A package management system is a collection of tools to automate the process of installing, upgrading, configuring, and removing Software package from a computer....
 and distributed on a wide range of Unix-like
Unix-like

A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
 operating systems, such as Arch Linux
Arch Linux

Arch Linux is a Linux distribution intended to be lightweight and simple. The design approach of the development team focuses on "simplicity", elegance, code correctness and Minimalism ....
, Debian
Debian

Debian GNU/Linux is one of the most popular and influential computer operating systems composed of free software and open source software....
, Ubuntu, Gentoo
Gentoo Linux

Gentoo is a computer operating system built on top of the Linux Kernel and based on the Portage package management system. It is distributed as Free software....
, Sourcemage Linux, NixOS, FreeBSD
FreeBSD

FreeBSD is a Unix-like free software operating system descended from AT&T Unix via the Berkeley Software Distribution branch through the 386BSD and Berkeley Software Distribution#4.4BSD and descendants operating systems....
, NetBSD
NetBSD

NetBSD is a freely redistributable, open source version of the Unix-derivative Berkeley Software Distribution computer operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed....
 and OpenBSD
OpenBSD

OpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley....
.

While originally a clone
Clone (computer science)

In computing, a clone is a computer hardware or software system that is designed to mimic another system. computer compatibility with the original system is usually the explicit purpose of cloning hardware or low-level software such as operating systems....
 of dwm (derivative in areas such as default keybindings), xmonad supports features not available to dwm users such as per-workspace layout, tiling reflection, state preservation, layout mirroring, GNOME
Gnome

A gnome is a mythical creature characterized by its extremely small size and wiktionary:subterranean lifestyle. The word gnome is derived from the New Latin gnomus....
 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
Xinerama

Xinerama is an extension to the X Window System which enables Multi-monitor X applications and window managers to use two or more physical displays as one large virtual display....
 support (for multihead displays) with release 4.8, and reimplemented XMonad's Fibonacci layout.

Extensions to the core system, including emulation of other window managers and unusual layout algorithms, such as window tiling
Tessellation

A tessellation or tiling of the plane is a collection of plane figures that fills the plane with no overlaps and no gaps. One may also speak of tessellations of the parts of the plane or of other surfaces....
 based on the Fibonacci spiral
Fibonacci number

In mathematics, the Fibonacci numbers are a sequence of numbers named after Leonardo of Pisa, known as Fibonacci . Fibonacci's 1202 book Liber Abaci introduced the sequence to Western European mathematics, although the sequence had been previously described in Indian mathematics....
, have been implemented by the active community and are available as a library.

In addition to obviating the need for the mouse, the xmonad developers make heavy use of semi-formal methods
Formal methods

In computer science and software engineering, formal methods are particular kind of mathematically-based techniques for the formal specification, development and formal verification of software and hardware systems....
 and program derivation
Program derivation

In computer science, program derivation is the derivation of a program from its specification, by mathematical means.To derive a program means to write a formal specification, which is usually non-executable, and then apply mathematically correct rules in order to obtain an executable program satisfying that specification....
 for improving reliability and enabling a total line of code
Source lines of code

Source lines of code is a software metric used to measure the size of a Computer software by counting the number of lines in the text of the program's source 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
QuickCheck

QuickCheck is a combinator library written in Haskell , designed to assist in software testing by generating test cases for test suites. It is compatible with the Glasgow Haskell Compiler compiler and the Hugs Interpreter ....
. 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
Zipper (data structure)

Zipper is a purely functional data structure used in functional programming to solve some problems in a way that uses notions like ?context? and ?hole?....
 data structure
Data structure

A data structure in computer science is a way of storing data in a computer so that it can be used efficiently. It is an organization of mathematical and logical concepts of data....
 for automatically managing focus
Focus (computing)

In computing, the focus indicates the component of the graphical user interface which is currently selected to receive input. Text entered at the keyboard or pasted from a clipboard is sent to the component which currently has the focus....
, and its core has been proven to be safe with respect to pattern matches
Pattern matching

In computer science, pattern matching is the act of checking for the presence of the constituents of a given pattern. In contrast to pattern recognition, the pattern is rigidly specified....
, contributing further to reliability. The developers write:
"xmonad is a tiling window manager for the X Window system, implemented, configured and dynamically extensible in Haskell. This demonstration presents the case that software dominated by side effects can be developed with the precision and efficiency we expect from Haskell by utilising purely functional data structures, an expressive type system, extended static checking and property- based testing. In addition, we describe the use of Haskell as an application configuration and extension language."


It makes use of Haskell features and tools such as: QuickCheck, GHC
Glasgow Haskell Compiler

The Glorious Glasgow Haskell Compilation System, more commonly known as the Glasgow Haskell Compiler or GHC, is an open source Machine language compiler for the functional programming Computer programming Programming language Haskell ....
 extensions like pattern guards
Guard (computing)

In computer programming, a guard is a Boolean datatype expression that must evaluate to true if the program execution is to continue in the branch in question....
, monads
Monads in functional programming

In functional programming, a monad is a kind of abstract data type used to represent computations . Programs written in functional style can make use of monads to structure procedures that include sequenced operations, or to define arbitrary control flows ....
, monad transformer
Monad transformer

In functional programming, a monad transformer is a type constructor which takes a monads in functional programming as an argument and returns a monad as a result....
s, zippers, and the Cabal
Cabal (software)

The Haskell Cabal is is the Common Architecture for Building Application software and Library ; it aids in the packaging and distribution of Software package ....
 packaging system, in addition to Haskell bindings to Xlib
Xlib

Xlib is an X Window System protocol client library in the C . It contains subroutines for interacting with an X Server . These functions allow programmers to write programs without knowing the details of the protocol ....
 and xft
Xft

Xft, the "X Window System FreeType" Interface library, is a Free software software library written by Keith Packard. As of version 2.1, it is licensed under a quasi-BSD license....
 fonts (with rebinding to XCB
XCB

In computing, XCB is a C binding for the X Window System. It is implemented as free software and aims to replace Xlib. The project was started in 2001 by Bart Massey....
 planned when the Haskell bindings are released).

See also

  • Comparison of X window managers
    Comparison of X window managers

    This article lists comparisons between X window managers.See also * Comparison of X Window System desktop environmentsReferences ...


External links

  • - Official Site
  • - Using xmonad on Ubuntu.
  • - OSCON
    O'Reilly Open Source Convention

    The O'Reilly Open Source Convention is an annual Convention for the discussion of free and open source software. It is organized by the publisher O'Reilly Media and is held each summer in the United States....
     presentation by Simon Peyton Jones
    Simon Peyton Jones

    Simon Peyton Jones is a British computer scientist who researches the implementation and application software of functional programming languages, particularly lazy evaluation....
     on Haskell, using xmonad as an example
    • (video)
    • (video)
  • - 13th edition; XMonad
  • Don Stewart