
An X window manager is a
window manager
A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They work in conjunct ...
that runs on top of the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting ...
, a windowing system mainly used on
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
systems.
Unlike
MacOS Classic,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
, and
Microsoft Windows platforms (excepting Microsoft Windows
explorer.exe shell replacements), which have historically provided a vendor-controlled, fixed set of ways to control how windows and
panes display on a
screen, and how the user may interact with them, window management for the X Window System was deliberately kept separate from the software providing the graphical display. The user can choose between various third-party window managers, which differ from one another in several ways, including:
* customizability of appearance and functionality:
** textual
menus used to start programs and/or change options
**
docks and other graphical ways to start programs
**
multiple desktops
In computing, a virtual desktop is a term used with respect to user interfaces, usually within the WIMP paradigm, to describe ways in which the virtual space of a computer's desktop environment is expanded beyond the physical limits of the sc ...
and
virtual desktops (desktops larger than the physical monitor size), and
pagers to switch between them
* consumption of memory and other system resources
* degree of integration with a
desktop environment
In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphi ...
, which provides a more complete interface to the operating system, and provides a range of integrated utilities and applications.
How X window managers work
When a window manager is running, some kinds of interaction between the
X server and its
clients are redirected through the window manager. In particular, whenever an attempt to show a new window is made, this request is redirected to the window manager, which decides the initial position of the window. Additionally, most modern window managers are
reparenting, which usually leads to a banner being placed at the top of the window and a decorative frame being drawn around the window. These two elements are controlled by the window manager rather than the program. Therefore, when the user clicks or drags these elements, it is the window manager that takes the appropriate actions (such as moving or resizing the window).
Window managers are also responsible for
icon
An icon () is a religious work of art, most commonly a painting, in the cultures of the Eastern Orthodox, Oriental Orthodox, and Catholic churches. They are not simply artworks; "an icon is a sacred image used in religious devotion". The most c ...
s. Indeed, icons do not exist at the
X Window System core protocol level. When the user requests a window to be iconified, the window manager unmaps it (makes it non-visible) and takes the appropriate actions to show an icon in its place. Most modern window managers do not literally show icons to represent iconified windows anymore. Often, an auxiliary toolbar program will allow access to iconified windows.
While the main aim of a window manager is to manage the windows, many window managers have additional features such as handling mouse clicks in the
root window, presenting panes and other visual elements, handling some keystrokes (e.g., Alt-F4 may close a window), deciding which application to run at start-up, etc.
Standardized protocols exist to allow normal clients to communicate with the window manager. The original one is
Inter-Client Communication Conventions Manual (ICCCM) but this has been superseded by the
Extended Window Manager Hints (EWMH). These protocols allow clients to request titles for windows and icons, check if a window is iconified which might be docked or minimized, and possibly customize windows decorations, what
virtual desktop the window occupies.
Additional information from the window manager is available through the core protocol including the visibility of windows such as if a window is hidden on a different
Virtual desktop, and figuring out the adjustments for the window manager frames.
Types of window managers
Stacking window managers
A stacking window manager renders the windows one-by-one onto the screen at specific co-ordinates. If one window's area overlaps another, then the window "on top" overwrites part of the other's visible appearance. This results in the appearance familiar to many users in which windows act a little bit like pieces of paper on a desktop, which can be moved around and allowed to overlap.
In contrast to ''compositing'' window managers (see below), the lack of separate
off-screen buffers can mean increased efficiency, but effects such as translucency are not possible.
Stacking window managers include
Amiwm,
Blackbox,
Enlightenment
Enlightenment or enlighten may refer to:
Age of Enlightenment
* Age of Enlightenment, period in Western intellectual history from the late 17th to late 18th century, centered in France but also encompassing (alphabetically by country or culture): ...
,
Fluxbox,
FVWM,
IceWM,
MWM,
Openbox and
Window Maker.
Tiling window managers
A tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames (hence the name
tiling), as opposed to the traditional approach of coordinate-based stacking of objects (windows) that tries to emulate the desk paradigm.
Tiling window managers include
awesome
Awesome may refer to:
Music
* Awesome (band), a Seattle-based American band
* ''Awesome'' (The Temptations album) 2001
* ''Awesome'' (Marc Terenzi album), 2005
* "Awesome", a song by Veruca Salt from ''Eight Arms to Hold You''
* ''A'wesome' ...
,
dwm,
ion,
larswm,
ratpoison,
Stumpwm,
wmii,
i3,
xmonad, and
XWEM.
Compositing window managers
A compositing window manager may appear to the user similar to a stacking window manager. However, the individual windows are first rendered in individual buffers, and then their images are composited onto the screen buffer; this two-step process means that visual effects (such as shadows, translucency) can be applied. It also means that compositing window managers are inherently more resource-hungry than an equivalently-powerful stacking window manager. For this reason, some window managers for X do not support compositing by default, such as
Openboxbr>
Compositing in Lubuntu
Historically
History (derived ) is the systematic study and the documentation of the human activity. The time period of event before the invention of writing systems is considered prehistory. "History" is an umbrella term comprising past events as well ...
, the Amiga in 1985, OSX in 2001, Java Looking Glass in 2003, and the Windows Longhorn demo in 2003 (delayed until Vista in 2007) preceded compositing efforts under X11. Compositing window managers for X include:
*
GNOME's
Mutter née
Metacity (first dev-branch compositor in 2.7 or 2.
Wayback Machineof 200
Linux Today - Release Digest: GNOME, August 30, 2004��original stable-branch compositor since 2.14 in 200
or 200
��current compositor architecture since 2.2
Enable Metacity Compositing in GNOME 2.22 , Tombuntuin 2008—Metacity+Clutter begat
Mutter in 2011),
*
Xfce's
Xfwm (since 4.2 of 2004 or 200
Xfce 4.2.0 released!,
*
Unity's
Compiz (since 2005—was forked as
Beryl
Beryl ( ) is a mineral composed of beryllium aluminium silicate with the chemical formula Be3Al2Si6O18. Well-known varieties of beryl include emerald and aquamarine. Naturally occurring, hexagonal crystals of beryl can be up to several ...
in 2006 but the projects re-merged in 2007), and
*
KDE's
KWin (since 4.0 of 2008).
Compositing support can be added to non-compositing window managers, through the use of compositors such as ''compton''.
Virtual window managers
A virtual window manager is a window manager that uses virtual screens, whose resolution can be higher than the resolution of one's monitor/
display adapter thus resembling a two dimensional
virtual desktop with its
viewport. This environment is very useful when one wishes to have a large number of windows open at the same time. A number of virtual window managers have been made, including
FVWM,
Tvtwm,
HaZe and others.
Extensible window managers
Some window managers are extensible, or programmable, by user scripts.
In these window managers, users can define new actions or override the default, or reactions to various events, like window size and position changes, window creation and deletion, key and mouse input, timer, etc. They often provide on-the-fly code execution, too.
Some examples of such window managers and the used languages are:
*
Awesome
Awesome may refer to:
Music
* Awesome (band), a Seattle-based American band
* ''Awesome'' (The Temptations album) 2001
* ''Awesome'' (Marc Terenzi album), 2005
* "Awesome", a song by Veruca Salt from ''Eight Arms to Hold You''
* ''A'wesome' ...
-
Lua
Lua or LUA may refer to:
Science and technology
* Lua (programming language)
* Latvia University of Agriculture
* Last universal ancestor, in evolution
Ethnicity and language
* Lua people, of Laos
* Lawa people, of Thailand sometimes referred t ...
[https://awesomewm.org/]
*
KWin -
ECMAScript
ECMAScript (; ES) is a JavaScript standard intended to ensure the interoperability of web pages across different browsers. It is standardized by Ecma International in the documenECMA-262
ECMAScript is commonly used for client-side scriptin ...
*
Qtile -
Python
*
Sawfish - "rep", a
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
dialect
*
Xmonad -
haskell
*
StumpWM -
Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fr ...
*
GWM - "WOOL", a Lisp dialect
* Bspwm -
C
See also
*
Comparison of X window managers
*
Re-parenting window manager for a popular implementation technique
*
X Window System protocols and architecture for context
*
Windowing system
*
Wmctrl - a command-line utility used to control windows in EWMH and NetWM compatible window managers
*
xdotool - another command-line utility used to control windows
*
Wayland compositor
Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called a '' Wayland composit ...
References
External links
''The Comprehensive List of Window Managers for Unix''''ArchWiki List of Window Managers for Linux''
{{DEFAULTSORT:X Window Manager
X Window System
Graphical user interfaces