Jump to bottom

Unlike the Mac OS (Apple Macintosh) and Microsoft Windows platforms, 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:

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 icons. 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. Some window managers do not support icons.

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.

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 offscreen buffers can mean increased efficiency, but effects such as translucency are not possible.

Stacking window managers include Amiwm, Awesome, Blackbox, Enlightenment, evilwm, Fluxbox, FVWM, IceWM, Ion, 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, dwm, Ion, larswm, ratpoison, Stumpwm, wmii, 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 tend to be more resource-hungry than stacking window managers.

Compositing window managers include Beryl, Compiz, KWin (since 4.0), Metacity (since 2.20), and Xfwm.

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. 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.

X Window managers

See also

External links

X Window System
Architecture
Core Protocol · Xlib · X Window selection · X window manager · X session manager · X display manager · X Toolkit · X Window authorization · Intrinsics · X11 color names

Window managers
Re-parenting · Compositing · Stacking · Tiling

Extensions
X Image Extension · X keyboard extension · X video extension · Shape extension · Shared memory extension · AIGLX · GLX · XRender · MPX · DPS

Notable Implementations
Cygwin/X · KDrive · X11.app · X.Org Server · X-Win32 · X386 · XFree86 · XGGI · XDarwin · Xming · Xsun · Xgl

Standards
ICCCM · EWMH · XDS · freedesktop.org

Applications
xcalc · xclock · xedit · xload · xterm · xeyes · Desktop environments

Window management topics
Techniques
Tiling · Stacking · Dynamic · Compositing · Re-parenting

Tiling Examples
dwm  · PWM  · Ion  · Wmii · Ratpoison · xmonad · Xerox Star · Windows 1.0 · GEM (2.0 and Later)