Difference between revisions of "Window manager"

From ArchWiki
Jump to: navigation, search
m (added euclidwm, catwm, dswm, and notion)
m (moved X Window Manager to Window Manager over redirect: Ok, I was wrong, moved back)
(No difference)

Revision as of 02:08, 17 January 2012

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Summary help replacing me
A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. This article provides a general overview and listing of popular window managers.
Template:Graphical user interface overview

A window manager (WM) is one component of a system's graphical user interface (GUI). Users may prefer to install a full-fledged Desktop Environment, which provides a complete user interface, including icons, windows, toolbars, wallpapers, and desktop widgets.

X Window System

The X Window System provides the foundation for a graphical user interface. Prior to installing a window manager, a functional X server installation is required. See Xorg for detailed information.

X provides the basic framework, or primitives, for building such GUI environments: drawing and moving windows on the screen and interacting with a mouse and keyboard. X does not mandate the user interface — individual client programs known as window managers handle this. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces. X is built as an additional (application) abstraction layer on top of the operating system kernel.

The user is free to configure their GUI environment in any number of ways.

Window managers

Window managers (WMs) are X clients that provide the border around a window. The window manager controls the appearance of an application and how it is managed: the border, titlebar, size, and ability to resize a window are handled by window managers. Many window managers provide other functionality such as places to stick dockapps like Window Maker, a menu to start programs, menus to configure the WM and other useful things. Fluxbox, for example, has the ability to tab windows.

Window managers generally do not provide extras like desktop icons, which are commonly seen in desktop environments (though it is possible to add icons in a WM with another program).

Because of the lack of extras, WMs are much lighter on system resources.


  • Stacking (aka floating) window managers provide the tradition desktop metaphor used in commercial operating systems like Windows and OS X. Windows act like pieces of paper on a desk, and can be stacked on top of each other.
  • Tiling window managers "tile" the windows so that none are overlapping. They usually make very extensive use of key-bindings and have less (or no) reliance on the mouse. Tiling window managers may be manual, offer predefined layouts, or both.
  • Dynamic window managers can dynamically switch between tiling or floating window layout.

Comparison of window managers

See Comparison of Tiling Window Managers and Wikipedia:Comparison of X window managers.

List of window managers

Stacking WMs

aewm — aewm is a modern, minimal window manager for X11. It is controlled entirely with the mouse, but contains no visible UI apart from window frames. The command set is sort of like vi: designed back in the dawn of time (1997) to squeeze speed out of low-memory machines, completely unintuitive and new-user-hostile, but quick and elegant in its own way.

http://www.red-bean.com/decklin/aewm/ || Template:Package AUR [unsupported]

AfterStep — AfterStep is a window manager for the Unix X Window System. Originally based on the look and feel of the NeXTStep interface, it provides end users with a consistent, clean, and elegant desktop. The goal of AfterStep development is to provide for flexibility of desktop configuration, improving aestetics, and efficient use of system resources.

http://www.afterstep.org/ || Template:Package AUR [unsupported]

Blackbox — Blackbox is the fast, lightweight window manager for the X Window System you have been looking for, without all those annoying library dependencies. Blackbox is built with C++ and contains completely original code (even though the graphics implementation is similar to that of WindowMaker).

http://blackboxwm.sourceforge.net/ || Template:Package Official [community]

Compiz — Compiz is an OpenGL compositing manager that uses GLX_EXT_texture_from_pixmap for binding redirected top-level windows to texture objects. It has a flexible plug-in system and it is designed to run well on most graphics hardware.

http://www.compiz.org/ || Template:Package Official [community]

Enlightenment — Enlightenment is not just a window manager for Linux/X11 and others, but also a whole suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager.

http://www.enlightenment.org/ || Template:Package Official [extra]

evilwm — A minimalist window manager for the X Window System. 'Minimalist' here doesn't mean it's too bare to be usable - it just means it omits a lot of the stuff that make other window managers unusable.

http://www.6809.org.uk/evilwm/ || Template:Package Official [extra]

Firebox — Firebox is yet another Window Manager for X11 systems. Still in development, it is not forked from Openbox, Fluxbox, Blackbox or even Hackedbox; it is written from scratch, in C language.

http://firebox.intuxication.org/ || Template:Package AUR [unsupported]

Fluxbox — Fluxbox is a window manager for X that was based on the Blackbox 0.61.1 code. It is very light on resources and easy to handle but yet full of features to make an easy and extremely fast desktop experience. It is built using C++ and licensed under the MIT License.

http://www.fluxbox.org/ || Template:Package Official [extra]

Flwm — Flwm is my attempt to combine the best ideas I have seen in several window managers. The primary influence and code base is from wm2 by Chris Cannam.

http://flwm.sourceforge.net/ || Template:Package AUR [unsupported]

FVWM — FVWM is an extremely powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent.

http://www.fvwm.org/ || Template:Package Official [extra]

Hackedbox — Hackedbox is a stripped down version of Blackbox - The X11 Window Manager. The toolbar and Slit have been removed. The goal of Hackedbox is to be a small "feature-set" window manager, with no bloat. There are no plans to add any functionality, only bugfixes and speed enhancements whenever possible.

http://scrudgeware.org/projects/Hackedbox/ || Template:Package AUR [unsupported]

IceWM — IceWM is a window manager for the X Window System. The goal of IceWM is speed, simplicity, and not getting in the user's way.

http://www.icewm.org/ || Template:Package Official [extra]

JWM — JWM is a window manager for the X11 Window System. JWM is written in C and uses only Xlib at a minimum.

http://joewing.net/programs/jwm/ || Template:Package Official [community]

Karmen — Karmen is a window manager for X, written by Johan Veenhuizen. It is designed to "just work." There is no configuration file and no library dependencies other than Xlib. The input focus model is click-to-focus. Karmen aims at ICCCM and EWMH compliance.

http://karmen.sourceforge.net/ || Template:Package AUR [unsupported]

KWin — KWin, the standard KDE window manager in KDE 4.0, ships with the first version of built-in support for compositing, making it also a compositing manager. This allows KWin to provide advanced graphical effects, similar to Compiz, while also providing all the features from previous KDE releases (such as very good integration with the rest of KDE, advanced configurability, focus stealing prevention, a well-tested window manager, robust handling of misbehaving applications/toolkits, etc.).

http://techbase.kde.org/Projects/KWin || Template:Package Official [extra]

lwm — lwm is a window manager for X that tries to keep out of your face. There are no icons, no button bars, no icon docks, no root menus, no nothing: if you want all that, then other programs can provide it. There's no configurability either: if you want that, you want a different window manager; one that helps your operating system in its evil conquest of your disc space and its annexation of your physical memory.

http://www.jfc.org.uk/software/lwm.html || Template:Package Official [community]

Metacity — This is not the Metacity home page. There is no Metacity home page. This is for the same reason there is no flashy logo: Metacity strives to be quiet, small, stable, get on with its job, and stay out of your attention.

http://blogs.gnome.org/metacity/ || Template:Package Official [extra]

Openbox — Openbox is a highly configurable, next generation window manager with extensive standards support. The *box visual style is well known for its minimalistic appearance. Openbox uses the *box visual style, while providing a greater number of options for theme developers than previous *box implementations. The theme documentation describes the full range of options found in Openbox themes.

http://openbox.org/wiki/Main_Page || Template:Package Official [extra]

Pawm — Pawm is a window manager for the X Window system. So it's not a 'desktop' and doesn't offer you a huge pile of useless options, just the facilities needed to run your X applications and at the same time having a friendly and easy to use interface.

http://www.pleyades.net/pawm/ || Template:Package Official [community]

pekwm — pekwm is a window manager that once upon a time was based on the aewm++ window manager, but it has evolved enough that it no longer resembles aewm++ at all. It has a much expanded feature-set, including window grouping (similar to Ion, PWM, or Fluxbox), auto-properties, Xinerama, keygrabber that supports keychains, and much more.

http://www.pekwm.org/projects/pekwm || Template:Package Official [extra]

Sawfish — Sawfish is an extensible window manager using a Lisp-based scripting language. Its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. All high-level WM functions are implemented in Lisp for future extensibility or redefinition.

http://sawfish.wikia.com/wiki/Main_Page || Template:Package Official [community]

TinyWM — TinyWM is a tiny window manager that I created as an exercise in minimalism. It is also maybe helpful in learning some of the very basics of creating a window manager. It is only around 50 lines of C. There is also a Python version using python-xlib.

http://incise.org/tinywm.html || Template:Package AUR [unsupported]

twm — twm is a window manager for the X Window System. It provides titlebars, shaped windows, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.

http://cgit.freedesktop.org/xorg/app/twm/ || Template:Package Official [extra]

WindowLab — WindowLab is a small and simple window manager of novel design. It has a click-to-focus but not raise-on-focus policy, a window resizing mechanism that allows one or many edges of a window to be changed in one action, and an innovative menubar that shares the same part of the screen as the taskbar. Window titlebars are prevented from going off the edge of the screen by constraining the mouse pointer, and when appropriate the pointer is also constrained to the taskbar/menubar in order to make target menu items easier to hit.

http://nickgravgaard.com/windowlab/ || Template:Package Official [community]

Window Maker — Window Maker is an X11 window manager originally designed to provide integration support for the GNUstep Desktop Environment. In every way possible, it reproduces the elegant look and feel of the NEXTSTEP user interface. It is fast, feature rich, easy to configure, and easy to use. It is also free software, with contributions being made by programmers from around the world.

http://windowmaker.org/ || Template:Package Official [extra]

Xfwm — The Xfce window manager manages the placement of application windows on the screen, provides beautiful window decorations, manages workspaces or virtual desktops and natively supports multiscreen mode. It provides its own compositing manager (from the X.Org Composite extension) for true transparency and shadows. The Xfce window manager also includes a keyboard shortcuts editor for user specific commands and basic windows manipulations and provides a preferences dialog for advanced tweaks.

http://www.xfce.org/projects/xfwm4/ || Template:Package Official [extra]
Tiling window managers

dswm — dswm(Deep Space Window Manager) is an offshoot of Stumpwm

https://github.com/dss-project/dswm || Template:Package AUR [unsupported]

euclid-wm — euclid-wm is a simple and lightweight tiling and floating window manager for X11. It started as a dwm fork with easier configuration, and became a full-featured reparenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar called [ourico].

http://euclid-wm.sourceforge.net/index.php || Template:Package AUR [unsupported]

Herbstluftwm — herbstluftwm is a manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. Each tag contains an own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup. (similar to wmii/ musca)

http://wwwcip.cs.fau.de/~re06huxa/herbstluftwm || Template:Package AUR [unsupported]

i3 — i3 is a tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, didn't provide some features we wanted (multi-monitor done right, for example) had some bugs, didn't progress since quite some time and wasn't easy to hack at all (source code comments/documentation completely lacking).

http://i3.zekjur.net/ || Template:Package Official [community]

Ion3 — Ion is a tiling tabbed X11 window manager designed with keyboard users in mind. It was one of the first of the “new wave" of tiling windowing environments (the other being LarsWM, with quite a different approach) and has since spawned an entire category of tiling window managers for X11 – none of which really manage to reproduce the feel and functionality of Ion.

http://tuomov.iki.fi/software || Template:Package AUR [unsupported]

Musca — A simple dynamic window manager for X, with features nicked from ratpoison and dwm.

http://aerosuidae.net/musca.html || Template:Package AUR [unsupported]

Notion — Notion is a tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows. Notion is a fork of Ion3.

http://notion.sf.net/ || Template:Package Official [community]

Ratpoison — Ratpoison is a simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no rodent dependence. It is largely modeled after GNU Screen which has done wonders in the virtual terminal market.

http://www.nongnu.org/ratpoison/ || Template:Package Official [extra]

Stumpwm — Stumpwm is a tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. There are no window decorations, no icons, and no buttons. It does have various hooks to attach your personal customizations, and variables to tweak.

http://www.nongnu.org/stumpwm/ || Template:Package AUR [unsupported]

subtle — subtle is a manual tiling window manager with a rather uncommon approach of tiling: Per default there is no typical layout enforcement, windows are placed on a position (gravity) in a custom grid. The user can change the gravity of each window either directly per grabs or with rules defined by tags in the config.

http://subforge.org/projects/subtle || Template:Package AUR [unsupported]

WMFS — WMFS (Window Manager From Scratch) is a lightweight and highly configurable tiling window manager for X. It can be configured with a configuration file, supports Xft (FreeType) fonts and is compliant with the Extended Window Manager Hints (EWMH) specifications, Xinerama and Xrandr. WMFS can be driven with Vi based commands (ViWMFS).

http://wmfs.info/projects/wmfs || Template:Package AUR [unsupported]

wmii — wmii is a small, dynamic window manager for X11. It is scriptable, has a 9P filesystem interface and supports classic and tiling (Acme-like) window management. It aims to maintain a small and clean (read hackable and beautiful) codebase.

http://wmii.suckless.org/ || Template:Package Official [community]
Dynamic window managers

awesome — awesome is a highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. It is primarily targeted at power users, developers and any people dealing with every day computing tasks and who want to have fine-grained control on theirs graphical environment.

http://awesome.naquadah.org/ || Template:Package AUR [unsupported]

catwm — catwm is a small window manager, even simpler than dwm, written in C. Configuration is done by modifying the config.h file and recompiling.

https://github.com/pyknite/catwm || Template:Package AUR [unsupported]

dwm — dwm is a dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed.

http://dwm.suckless.org/ || Template:Package Official [community]

echinus — Simple and lightweight tiling and floating window manager for X11. Started as a dwm fork with easier configuration, echinus became full-featured re-parenting window manager with EWMH support.

http://plhk.ru/echinus || Template:Package AUR [unsupported]

Scrotwm — Scrotwm is a small dynamic tiling window manager for X11. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration. It was written by hackers for hackers and it strives to be small, compact and fast.

http://www.scrotwm.org/ || Template:Package AUR [unsupported]

xmonad — xmonad is a dynamically tiling X11 window manager that is written and configured in Haskell. In a normal WM, you spend half your time aligning and searching for windows. xmonad makes work easier, by automating this.

http://xmonad.org/ || Template:Package Official [community]