Difference between revisions of "Window manager"

From ArchWiki
Jump to: navigation, search
m
(Tiling window managers)
 
(99 intermediate revisions by 40 users not shown)
Line 1: Line 1:
[[Category:Desktop environments]]
+
[[Category:Window managers]]
[[es:Window Manager]]
+
[[ar:Window manager]]
[[it:Window Manager]]
+
[[es:Window manager]]
[[ja:Window Manager]]
+
[[fa:Window manager]]
[[uk:Window Manager]]
+
[[it:Window manager]]
[[zh-CN:Window Manager]]
+
[[ja:ウィンドウマネージャ]]
{{Article summary start}}
+
[[ru:Window manager]]
{{Article summary text|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.}}
+
[[uk:Window manager]]
{{Article summary heading|Overview}}
+
[[zh-cn:Window manager]]
{{Article summary text|{{Graphical user interface overview}}}}
+
{{Related articles start}}
{{Article summary end}}
+
{{Related|Desktop environment}}
 +
{{Related|Display manager}}
 +
{{Related|Xdg-menu}}
 +
{{Related|Xorg}}
 +
{{Related|xinitrc}}
 +
{{Related|Start X at Login}}
 +
{{Related articles end}}
  
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.
+
A [[Wikipedia:Window manager|window manager]] (WM) is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface (GUI). It can be part of a [[desktop environment]] (DE) or be used standalone.
  
== X Window System == <!-- please keep this section synchronized with [[Desktop Environment#X Window System]] -->
+
== Overview ==
The [[Wikipedia:X Window System|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.''
+
Window managers are X clients that control the appearance and behaviour of the frames ("windows") where the various graphical applications are drawn. They determine the border, titlebar, size, and ability to resize windows, and often provide other functionality such as reserved areas for sticking [http://windowmaker.org/dockapps/ dockapps] like [[Window Maker]], or the ability to tab windows like [[Fluxbox]]. Some window managers are even bundled with simple utilities like menus to start programs or to configure the WM itself.
  
The user is free to configure their GUI environment in any number of ways.
+
The [http://standards.freedesktop.org/wm-spec/wm-spec-latest.html Extended Window Manager Hints] specification is used to allow window managers interact in standard ways with the server and the other clients.
  
==Window managers==
+
Some window managers are developed as part of a more comprehensive [[desktop environment]], usually allowing the other provided applications to better interact with each other, giving a more consistent experience to the user, complete with features like desktop icons, fonts, toolbars, wallpapers, or desktop widgets.
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 [http://dockapps.windowmaker.org/ 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 environment]]s (though it is possible to add icons in a WM with another program).
+
Other window managers are instead designed to be used ''standalone'', giving the user complete freedom over the choice of the other applications to be used. This allows the user to create a more lightweight and customized environment, tailored to his/her own specific needs. "Extras" like desktop icons, toolbars, wallpapers, or desktop widgets, if needed, will have to be added with additional dedicated applications.
  
Because of the lack of ''extras'', WMs are much lighter on system resources.
+
Some standalone WMs can be also used to replace the default WM of a DE, just like some DE-oriented WMs can be used standalone too.
  
===Types===
+
Prior to installing a window manager, a functional X server installation is required. See [[Xorg]] for detailed information.
*'''Stacking''' (aka floating) window managers provide the traditional 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.
+
  
* [[:Category:Stacking WMs]]
+
=== Types ===
* [[:Category:Tiling WMs]]
+
* [[:Category:Dynamic WMs]]
+
  
See [[Comparison of Tiling Window Managers]] and [[Wikipedia:Comparison of X window managers]] for comparison of window managers.
+
* [[#Stacking window managers|Stacking]] (aka floating) window managers provide the traditional 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. For available Arch Wiki pages see [[:Category:Stacking WMs]].
 +
* [[#Tiling window managers|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. For available Arch Wiki pages see [[:Category:Tiling WMs]].
 +
* [[#Dynamic window managers|Dynamic]] window managers can dynamically switch between tiling or floating window layout. For available Arch Wiki pages see [[:Category:Dynamic WMs]].
 +
 
 +
See [[Comparison of tiling window managers]] and [[Wikipedia:Comparison of X window managers]] for comparison of window managers.
  
 
== List of window managers==
 
== List of window managers==
  
=== Stacking WMs ===
+
=== Stacking window managers ===
  
*{{App|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/|{{AUR|aewm}} [unsupported]}}
+
* {{App|[[2bwm]]|Fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower. The name has recently changed from mcwm-beast to 2bwm.|https://github.com/venam/2bwm|{{AUR|2bwm}}}}
  
*{{App|[[Wikipedia:AfterStep|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/|{{AUR|afterstep}} [unsupported]}}
+
* {{App|aewm|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/|{{AUR|aewm}}}}
  
*{{App|[[Wikipedia:Blackbox|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/|{{Pkg|blackbox}}}}
+
* {{App|[[Wikipedia:AfterStep|AfterStep]]|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 aesthetics, and efficient use of system resources.|http://www.afterstep.org/|{{AUR|afterstep}}}}
  
*{{App|[[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/|{{Pkg|compiz-core}}}}
+
* {{App|[[Blackbox]]|Fast, lightweight window manager for the X Window System, 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/|{{Pkg|blackbox}}}}
  
*{{App|[[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/|{{Pkg|enlightenment}}}}
+
* {{App|[[Compiz]]|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.|https://launchpad.net/compiz|{{AUR|compiz}}}}
  
*{{App|[[evilwm]]|A minimalist window manager for the X Window System. 'Minimalist' here does not mean it is too bare to be usable - it just means it omits a lot of the stuff that make other window managers ''un''usable.|http://www.6809.org.uk/evilwm/|{{Pkg|evilwm}}}}
+
* {{App|cwm|Originally deriving from evilwm, but later re-written from scratch. cwm aims to be simple, and offers helpful features such as searching for windows.|http://monkey.org/~marius/cwm/cwm.1.a|{{AUR|cwm}}}}
  
*{{App|[[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/|{{Pkg|fluxbox}}}}
+
* {{App|eggwm|A lightweight QT4/QT5 window manager|{{AUR|eggwm-qt5}}|{{AUR|eggwm}}}}
  
*{{App|[[Wikipedia:FLWM|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/|{{AUR|flwm}} [unsupported]}}
+
* {{App|[[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/|{{Pkg|enlightenment}}}}
  
*{{App|[[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/|{{Pkg|fvwm}}}}
+
* {{App|[[evilwm]]|Minimalist window manager for the X Window System. 'Minimalist' here does not mean it is too bare to be usable - it just means it omits a lot of the stuff that make other window managers ''un''usable.|http://www.6809.org.uk/evilwm/|{{AUR|evilwm}}}}
  
*{{App|[[Goomwwm]]|Goomwwm is an X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.|http://aerosuidae.net/goomwwm/|{{AUR|goomwwm}} [unsupported]}}
+
* {{App|[[Fluxbox]]|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/|{{Pkg|fluxbox}}}}
  
*{{App|[[Wikipedia:Hackedbox|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/|{{AUR|hackedbox}} [unsupported]}}
+
* {{App|[[Wikipedia:FLWM|Flwm]]|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/|{{AUR|flwm}}}}
  
*{{App|[[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/|{{Pkg|icewm}}}}
+
* {{App|[[FVWM]]|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/|{{Pkg|fvwm}}}}
  
*{{App|[[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/|{{Pkg|jwm}}}}
+
* {{app|[http://elementaryos.org/journal/meet-gala-window-manager Gala]|A beautiful Window Manager from elementaryos, part of [[Pantheon]]. Also as a compositing manager, based on libmutter.|https://launchpad.net/gala|{{aur|gala-bzr}}}}
  
*{{App|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/|{{AUR|karmen}} [unsupported]}}
+
* {{App|Goomwwm|X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.|http://aerosuidae.net/goomwwm/|{{AUR|goomwwm}}}}
  
*{{App|[[Wikipedia:KWin|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|{{Pkg|kdebase-workspace}}}}
+
* {{App|[[IceWM]]|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/|{{Pkg|icewm}}}}
  
*{{App|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 is 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|{{Pkg|lwm}}}}
+
* {{App|[[jbwm]]|jbwm is a window manager based on evilwm, with a minimal configuration size of approximately 16kb, focused on small binary size and usability, incorporating optional title-bars and XFT title-bar font rendering as compile-time options. jbwm also features easier to use keybindings than evilwm.|https://github.com/jefbed/jbwm|{{AUR|jbwm}}}}
  
*{{App|[[Wikipedia:Metacity|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/|{{Pkg|metacity}}}}
+
* {{App|[[JWM]]|Window manager for the X11 Window System. JWM is written in C and uses only Xlib at a minimum.|http://joewing.net/projects/jwm/index.shtml|{{Pkg|jwm}}}}
  
*{{App|[[Wikipedia:Mutter (window manager)|Mutter]]|Window and compositing manager for GNOME, based on Clutter, uses OpenGL.|http://git.gnome.org/browse/mutter/|{{Pkg|mutter}}}}
+
* {{App|Karmen|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/|{{AUR|karmen}}}}
  
*{{App|[[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|{{Pkg|openbox}}}}
+
* {{App|[[Wikipedia: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.).|https://techbase.kde.org/Projects/KWin|{{Pkg|kwin}}}}
  
*{{App|[[pawm]]|pawm is a window manager for the X Window system. So it is not a 'desktop' and does not 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/|{{Pkg|pawm}}}}
+
* {{App|lwm|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 is 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|{{Pkg|lwm}}}}
  
*{{App|[[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|{{Pkg|pekwm}}}}
+
* {{App|Marco|The MATE window manager, fork of Metacity.|https://github.com/mate-desktop/marco|{{Pkg|marco}}}}
  
*{{App|[[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|{{AUR|sawfish}} [unsupported]}}
+
* {{App|[[Wikipedia:Metacity|Metacity]]|This window manager strives to be quiet, small, stable, get on with its job, and stay out of your attention.|http://blogs.gnome.org/metacity/|{{Pkg|metacity}}}}
  
*{{App|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|{{AUR|tinywm}} [unsupported]}}
+
* {{App|[[Wikipedia:Mutter_(software)#Muffin|Muffin]]|Window and compositing manager for Cinnamon, fork of Mutter, based on Clutter, uses OpenGL.|https://github.com/linuxmint/muffin/|{{Pkg|muffin}}}}
  
*{{App|[[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/|{{Pkg|xorg-twm}}}}
+
* {{App|[[Wikipedia:Mutter (window manager)|Mutter]]|Window and compositing manager for GNOME, based on Clutter, uses OpenGL.|http://git.gnome.org/browse/mutter/|{{Pkg|mutter}}}}
  
*{{App|[[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/|{{Pkg|windowlab}}}}
+
* {{App|[[Wikipedia:Motif_Window_Manager|MWM]]|The Motif Window Manager (MWM) is an X window manager based on the Motif toolkit.|http://sourceforge.net/projects/motif/|{{Pkg|openmotif}}, {{Pkg|lesstif}}}}
  
*{{App|[[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/|{{Pkg|windowmaker}}}}
+
* {{App|[[Openbox]]|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|{{Pkg|openbox}}}}
  
*{{App|WM2|wm2 is a window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window      manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who  don't  particularly want their window manager to be too friendly. |http://www.all-day-breakfast.com/wm2/|{{AUR|wm2}}}}
+
* {{App|[[pawm]]|Window manager for the X Window system. So it is not a 'desktop' and does not 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/|{{Pkg|pawm}}}}
  
*{{App|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/|{{pkg|xfwm4}}}}
+
* {{App|[[PekWM]]|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|{{Pkg|pekwm}}}}
 +
 
 +
* {{App|[[Sawfish]]|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|{{AUR|sawfish}}}}
 +
 
 +
* {{App|TinyWM|Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.|http://incise.org/tinywm.html|{{AUR|tinywm}} {{AUR|tinywm-git}}}}
 +
 
 +
* {{App|[[twm]]|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/|{{Pkg|xorg-twm}}}}
 +
 
 +
* {{App|[[Wikipedia:UDE|UWM]]|The ultimate window manager for UDE.|http://udeproject.sourceforge.net/|{{Pkg|ude}}}}
 +
 
 +
* {{App|WindowLab|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/|{{Pkg|windowlab}}}}
 +
 
 +
* {{App|[[Window Maker]]|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/|{{Pkg|windowmaker}}}}
 +
 
 +
* {{App|WM2|Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly. |http://www.all-day-breakfast.com/wm2/|{{AUR|wm2}}}}
 +
 
 +
* {{App|[[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/|{{pkg|xfwm4}}}}
  
 
=== Tiling window managers ===
 
=== Tiling window managers ===
*{{App|dswm|dswm (Deep Space Window Manager) is an offshoot of [[Stumpwm]]|https://github.com/dss-project/dswm|{{AUR|dswm}} [unsupported]}}
 
  
*{{App|[[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|{{AUR|herbstluftwm-git}} [unsupported]}}
+
* {{App|[[Bspwm]]|bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.|https://github.com/baskerville/bspwm|{{Pkg|bspwm}}}}
  
*{{App|[[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. It uses Lua as an embedded interpreter which handles all of the configuration. |http://tuomov.iki.fi/software|{{AUR|ion3}} [unsupported]}}
+
* {{App|[[Herbstluftwm]]|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 its 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://herbstluftwm.org|{{pkg|herbstluftwm}}}}
  
*{{App|[[Notion]]|Notion is a tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.  
+
* {{App|howm|A lightweight, tiling X11 window manager that mimics vi by offering operators, motions and modes. Configuration is done through the included {{ic|config.h}} file.|https://github.com/HarveyHunt/howm|{{AUR|howm-x11}}}}
**Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it
+
**Tabbing: a tile may contain multiple windows - they will be 'tabbed'
+
**Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.  
+
:Notion is a fork of Ion3.|http://notion.sf.net/|{{Pkg|notion}}}}
+
  
*{{App|[[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. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.|http://www.nongnu.org/ratpoison/|{{Pkg|ratpoison}}}}
+
* {{App|[[Ion3]]|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. It uses Lua as an embedded interpreter which handles all of the configuration. |http://tuomov.iki.fi/software|{{AUR|ion3}}}}
  
*{{App|[[Stumpwm]]|Stumpwm is a tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.|http://www.nongnu.org/stumpwm/|{{AUR|stumpwm-git}} [unsupported]}}
+
* {{App|[[Notion]]|Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.
 +
** Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it
 +
** Tabbing: a tile may contain multiple windows - they will be 'tabbed'.
 +
** Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.
 +
: Notion is a fork of Ion3.|http://notion.sf.net/|{{Pkg|notion}}}}
  
*{{App|[[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. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar. |http://subforge.org/projects/subtle|{{Pkg|subtle}}}}
+
* {{App|[[Ratpoison]]|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. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.|http://www.nongnu.org/ratpoison/|{{Pkg|ratpoison}}}}
  
*{{App|[[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).|https://github.com/xorg62/wmfs|{{AUR|wmfs}} [unsupported]}}
+
* {{App|[[Stumpwm]]|Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.|http://www.nongnu.org/stumpwm/|{{AUR|stumpwm-git}}}}
  
=== Dynamic window managers ===
+
* {{App|[[subtle]]|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. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar. |http://subforge.org/projects/subtle|{{AUR|subtle-git}}}}
  
*{{App|[[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. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things. |http://awesome.naquadah.org/|{{Pkg|awesome}}}}
+
* {{App|[[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).|https://github.com/xorg62/wmfs|{{AUR|wmfs}}}}
  
*{{App|[[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|{{AUR|catwm-git}} [unsupported]}}
+
* {{App|[[WMFS2]]|Incompatible successor of WMFS. It's even more minimalistic and brings some new stuff.|https://github.com/xorg62/wmfs|{{AUR|wmfs2-git}}}}
 +
 
 +
=== Dynamic window managers ===
  
*{{App|[[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. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed. The program size is already at the self-imposed line limit, restricting further development.|http://dwm.suckless.org/|{{Pkg|dwm}}}}
+
* {{App|[[awesome]]|Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things. |http://awesome.naquadah.org/|{{Pkg|awesome}}}}
  
*{{App|[[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. It has an EWMH-compatible panel/taskbar, called {{AUR|ourico}}|http://plhk.ru/echinus|{{AUR|echinus}} [unsupported]}}
+
* {{App|[[catwm]]|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|{{AUR|catwm-git}}}}
  
*{{App|[[euclid-wm]]|euclid-wm is a simple and lightweight tiling and floating window manager for X11, with support for minimizing windows. A text configuration file controls key bindings and settings. 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 {{AUR|ourico}}. | http://euclid-wm.sourceforge.net/index.php|{{AUR|euclid-wm}} [unsupported]}}
+
* {{App|[[dwm]]|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. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.|http://dwm.suckless.org/|{{Pkg|dwm}}}}
  
*{{App|[[i3]]|i3 is a tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example) had some bugs, did not progress since quite some time and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented. |http://i3wm.org/|{{Pkg|i3-wm}}}}
+
* {{App|[[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. It has an EWMH-compatible panel/taskbar, called {{AUR|ourico}}.|http://plhk.ru|{{AUR|echinus}}}}
  
*{{App|[[monsterwm]]| is a minimal, lightweight, tiny but monsterous dynamic tiling window manager. It will try to stay as small as possible. Currently under 700 lines with the config file included. It provides a set of four different layout modes (vertical stack, bottom stack, grid and monocle/fullscreen) by default, and has floating mode support. It also features multi-monitor support. Each monitor and virtual desktop have their own properties, unaffected by other monitors' or desktops' settings. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed. There are many available patches supported upstream, in the form of different git branches.|https://github.com/c00kiemon5ter/monsterwm|{{AUR|monsterwm}} [unsupported]}}
+
* {{App|[[i3]]|Tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented. |http://i3wm.org/|{{Pkg|i3-wm}}}}
  
*{{App|[[Musca]]|A simple dynamic window manager for X, with features nicked from ratpoison and dwm. Musca operates as a tiling window manager by default. The user determines how the screen is divided into non-overlapping frames, with no restrictions on layout. Application windows always fill their assigned frame, with the exception of transient windows and popup dialog boxes which float above their parent application at the appropriate size. Once visible, applications do not change frames unless so instructed.|http://aerosuidae.net/musca.html|{{AUR|musca}} [unsupported]}}
+
* {{App|[[FrankenWM]]|Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.|https://github.com/sulami/FrankenWM|{{AUR|frankenwm-git}}}}
  
*{{App|[[snapwm]]| is a lightweight dynamic tiling window manager with an emphasis on easy configurability and choice. It has a built in bar with clickable workspaces and space for external text. There's five tiling modes: vertical, fullscreen, horizontal, grid and stacking. It has other features, like color support, independant desktops, choice of window placement strategy, reloadable config files, transparency support, dmenu integration, multi monitor support and more. |https://github.com/moetunes/Nextwm|{{AUR|snapwm-git}} [unsupported]}}
+
* {{App|[[spectrwm]]|Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. 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 is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.|https://github.com/conformal/spectrwm/wiki|{{Pkg|spectrwm}}}}
  
*{{App|[[spectrwm]]|Spectrwm is a small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. 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 is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script|https://opensource.conformal.com/wiki/spectrwm|{{Pkg|spectrwm}} [community]}}
+
* {{App|[[Qtile]]|Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs. |https://github.com/qtile/qtile|{{AUR|qtile}}}}
  
*{{App|[[Qtile]]|Qtile is a full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs. |https://github.com/qtile/qtile|{{AUR|qtile-git}} [unsupported]}}
+
* {{App|[[wmii]]|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. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray ({{ic|witray}}). |http://wmii.suckless.org/|{{Pkg|wmii}}}}
  
*{{App|[[Wingo]]|Wingo is a fully featured true hybrid window manager that supports per-monitor workspaces, and neither the floating or tiling modes are after thoughts. This allows one to have tiling on one workspace while floating on the other. Wingo can be scripted with its own command language, is completely themeable, and supports user defined hooks. Wingo is written in Go and has no runtime dependencies. |https://github.com/BurntSushi/wingo|{{AUR|wingo-git}} [unsupported]}}
+
* {{App|[[xmonad]]|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. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called {{Pkg|xmonad-contrib}} provides many additional features|http://xmonad.org/|{{Pkg|xmonad}}}}
  
*{{App|[[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. The default configuration is in bash and [http://rc.cat-v.org rc (the Plan 9 shell)], but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray ({{Ic|witray}}). |http://wmii.suckless.org/|{{Pkg|wmii}}}}
+
== See also ==
  
*{{App|[[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. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called {{Pkg|xmonad-contrib}} provides many additional features|http://xmonad.org/|{{Pkg|xmonad}}}}
+
* http://www.gilesorr.com/wm/
 +
* http://www.slant.co/topics/390/~what-are-the-best-window-managers-for-linux
 +
* https://l3net.wordpress.com/2013/03/17/a-memory-comparison-of-light-linux-desktops/

Latest revision as of 05:32, 20 May 2016

A window manager (WM) is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface (GUI). It can be part of a desktop environment (DE) or be used standalone.

Overview

Window managers are X clients that control the appearance and behaviour of the frames ("windows") where the various graphical applications are drawn. They determine the border, titlebar, size, and ability to resize windows, and often provide other functionality such as reserved areas for sticking dockapps like Window Maker, or the ability to tab windows like Fluxbox. Some window managers are even bundled with simple utilities like menus to start programs or to configure the WM itself.

The Extended Window Manager Hints specification is used to allow window managers interact in standard ways with the server and the other clients.

Some window managers are developed as part of a more comprehensive desktop environment, usually allowing the other provided applications to better interact with each other, giving a more consistent experience to the user, complete with features like desktop icons, fonts, toolbars, wallpapers, or desktop widgets.

Other window managers are instead designed to be used standalone, giving the user complete freedom over the choice of the other applications to be used. This allows the user to create a more lightweight and customized environment, tailored to his/her own specific needs. "Extras" like desktop icons, toolbars, wallpapers, or desktop widgets, if needed, will have to be added with additional dedicated applications.

Some standalone WMs can be also used to replace the default WM of a DE, just like some DE-oriented WMs can be used standalone too.

Prior to installing a window manager, a functional X server installation is required. See Xorg for detailed information.

Types

  • Stacking (aka floating) window managers provide the traditional 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. For available Arch Wiki pages see Category:Stacking WMs.
  • 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. For available Arch Wiki pages see Category:Tiling WMs.
  • Dynamic window managers can dynamically switch between tiling or floating window layout. For available Arch Wiki pages see Category:Dynamic WMs.

See Comparison of tiling window managers and Wikipedia:Comparison of X window managers for comparison of window managers.

List of window managers

Stacking window managers

  • 2bwm — Fast floating WM, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower. The name has recently changed from mcwm-beast to 2bwm.
https://github.com/venam/2bwm || 2bwmAUR
  • aewm — 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/ || aewmAUR
  • AfterStep — 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 aesthetics, and efficient use of system resources.
http://www.afterstep.org/ || afterstepAUR
  • Blackbox — Fast, lightweight window manager for the X Window System, 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/ || blackbox
  • Compiz — 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.
https://launchpad.net/compiz || compizAUR
  • cwm — Originally deriving from evilwm, but later re-written from scratch. cwm aims to be simple, and offers helpful features such as searching for windows.
http://monkey.org/~marius/cwm/cwm.1.a || cwmAUR
  • eggwm — A lightweight QT4/QT5 window manager
eggwm-qt5AUR || eggwmAUR
  • 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/ || enlightenment
  • evilwm — Minimalist window manager for the X Window System. 'Minimalist' here does not mean it is 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/ || evilwmAUR
  • Fluxbox — 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/ || fluxbox
  • Flwm — 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/ || flwmAUR
  • FVWM — 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/ || fvwm
  • Gala — A beautiful Window Manager from elementaryos, part of Pantheon. Also as a compositing manager, based on libmutter.
https://launchpad.net/gala || gala-bzrAUR
  • Goomwwm — X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.
http://aerosuidae.net/goomwwm/ || goomwwmAUR
  • IceWM — 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/ || icewm
  • jbwm — jbwm is a window manager based on evilwm, with a minimal configuration size of approximately 16kb, focused on small binary size and usability, incorporating optional title-bars and XFT title-bar font rendering as compile-time options. jbwm also features easier to use keybindings than evilwm.
https://github.com/jefbed/jbwm || jbwmAUR
  • JWM — Window manager for the X11 Window System. JWM is written in C and uses only Xlib at a minimum.
http://joewing.net/projects/jwm/index.shtml || jwm
  • Karmen — 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/ || karmenAUR
  • 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.).
https://techbase.kde.org/Projects/KWin || kwin
  • lwm — 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 is 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 || lwm
  • Marco — The MATE window manager, fork of Metacity.
https://github.com/mate-desktop/marco || marco
  • Metacity — This window manager strives to be quiet, small, stable, get on with its job, and stay out of your attention.
http://blogs.gnome.org/metacity/ || metacity
  • Muffin — Window and compositing manager for Cinnamon, fork of Mutter, based on Clutter, uses OpenGL.
https://github.com/linuxmint/muffin/ || muffin
  • Mutter — Window and compositing manager for GNOME, based on Clutter, uses OpenGL.
http://git.gnome.org/browse/mutter/ || mutter
  • MWM — The Motif Window Manager (MWM) is an X window manager based on the Motif toolkit.
http://sourceforge.net/projects/motif/ || openmotif, lesstif
  • Openbox — 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 || openbox
  • pawm — Window manager for the X Window system. So it is not a 'desktop' and does not 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/ || pawm
  • PekWM — 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 || pekwm
  • Sawfish — 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 || sawfishAUR
  • TinyWM — Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.
http://incise.org/tinywm.html || tinywmAUR tinywm-gitAUR
  • twm — 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/ || xorg-twm
  • UWM — The ultimate window manager for UDE.
http://udeproject.sourceforge.net/ || ude
  • WindowLab — 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/ || windowlab
  • Window Maker — 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/ || windowmaker
  • WM2 — Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly.
http://www.all-day-breakfast.com/wm2/ || wm2AUR
  • 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/ || xfwm4

Tiling window managers

  • Bspwm — bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.
https://github.com/baskerville/bspwm || bspwm
  • Herbstluftwm — 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 its 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://herbstluftwm.org || herbstluftwm
  • howm — A lightweight, tiling X11 window manager that mimics vi by offering operators, motions and modes. Configuration is done through the included config.h file.
https://github.com/HarveyHunt/howm || howm-x11AUR
  • Ion3 — 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. It uses Lua as an embedded interpreter which handles all of the configuration.
http://tuomov.iki.fi/software || ion3AUR
  • Notion — Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.
    • Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it
    • Tabbing: a tile may contain multiple windows - they will be 'tabbed'.
    • Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.
Notion is a fork of Ion3.
http://notion.sf.net/ || notion
  • Ratpoison — 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. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.
http://www.nongnu.org/ratpoison/ || ratpoison
  • Stumpwm — Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons, no buttons, and no system tray. Its information bar can be set to show constantly or only when needed.
http://www.nongnu.org/stumpwm/ || stumpwm-gitAUR
  • subtle — 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. It has workspace tags and automatic client tagging, mouse and keyboard control as well as an extendable statusbar.
http://subforge.org/projects/subtle || subtle-gitAUR
  • 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).
https://github.com/xorg62/wmfs || wmfsAUR
  • WMFS2 — Incompatible successor of WMFS. It's even more minimalistic and brings some new stuff.
https://github.com/xorg62/wmfs || wmfs2-gitAUR

Dynamic window managers

  • awesome — Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things.
http://awesome.naquadah.org/ || awesome
  • catwm — 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 || catwm-gitAUR
  • dwm — 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. does not include a tray app or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.
http://dwm.suckless.org/ || dwm
  • 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. It has an EWMH-compatible panel/taskbar, called ouricoAUR.
http://plhk.ru || echinusAUR
  • i3 — Tiling window manager, completely written from scratch. i3 was created because wmii, our favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented.
http://i3wm.org/ || i3-wm
  • FrankenWM — Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.
https://github.com/sulami/FrankenWM || frankenwm-gitAUR
  • spectrwm — Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. 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 is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.
https://github.com/conformal/spectrwm/wiki || spectrwm
  • Qtile — Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It's easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs.
https://github.com/qtile/qtile || qtileAUR
  • wmii — 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. The default configuration is in bash and rc (the Plan 9 shell), but programs exist written in ruby, and any program that can work with text can configure it. It has a status bar and launcher built in, and also an optional system tray (witray).
http://wmii.suckless.org/ || wmii
  • xmonad — 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. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called xmonad-contrib provides many additional features
http://xmonad.org/ || xmonad

See also