X window manager: Difference between revisions
PekWM page in wikipedia has not existed. Thus, a relevant URL is added as a link. |
Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 21816 |
||
(41 intermediate revisions by 34 users not shown) | |||
Line 1: | Line 1: | ||
{{short description|Type of window manager}} |
|||
{{one source|date=November 2011}} |
{{one source|date=November 2011}} |
||
[[File:Schema of the layers of the graphical user interface.svg|thumb|300px|The [[windowing system]] based on the X11 protocol keeps [[display server]] and [[window manager]] as separate components]] |
[[File:Schema of the layers of the graphical user interface.svg|thumb|300px|The [[windowing system]] based on the X11 protocol keeps [[display server]] and [[window manager]] as separate components.]] |
||
An '''X window manager''' is a [[window manager]] |
An '''X window manager''' is a [[window manager]] that runs on top of the [[X Window System]], a windowing system mainly used on [[Unix-like]] systems. |
||
Unlike |
Unlike [[classic Mac OS|MacOS Classic]], [[macOS]], and [[Microsoft Windows]] platforms (excepting Microsoft Windows [[explorer.exe]] [[Windows shell replacement|shell replacements]]), which have historically provided a vendor-controlled, fixed set of ways to control how windows and [[Paned window (computing)|pane]]s display on a [[Computer display|screen]], and how the user may interact with them, window management for the X Window System was deliberately kept separate from the software providing the graphical display. The user can choose between various third-party window managers, which differ from one another in several ways, including: |
||
* customizability of appearance and functionality: |
* customizability of appearance and functionality: |
||
** textual [[Menu (computing)|menus]] used to start programs and/or change options |
** textual [[Menu (computing)|menus]] used to start programs and/or change options |
||
** [[Dock (computing)|docks]] and other graphical ways to start programs |
** [[Dock (computing)|docks]] and other graphical ways to start programs |
||
** [[multiple desktops]] and [[virtual desktop]]s (desktops larger than the physical monitor size), and [[pager (GUI)|pagers]]<ref>http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2504750</ref> to switch between them |
** [[multiple desktops]] and [[virtual desktop]]s (desktops larger than the physical monitor size), and [[pager (GUI)|pagers]]<ref name="EWMH">{{Cite web|url=http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2504750|title=Extended Window Manager Hints|website=standards.freedesktop.org|access-date=2018-09-16|archive-date=2008-02-25|archive-url=https://web.archive.org/web/20080225000427/http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2504750|url-status=dead}}</ref> to switch between them |
||
* consumption of memory and other system resources |
* consumption of memory and other system resources |
||
* degree of integration with a [[desktop environment]], which provides a more complete interface to the operating system, and provides a range of integrated utilities and applications. |
* degree of integration with a [[desktop environment]], which provides a more complete interface to the operating system, and provides a range of integrated utilities and applications. |
||
== |
==How X window managers work== |
||
When a window manager is running, some kinds of interaction between the [[X Window System protocols and architecture|X server]] and its [[X Window System protocols and architecture#The X client-server model and network transparency|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 [[Re-parenting window manager|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). |
When a window manager is running, some kinds of interaction between the [[X Window System protocols and architecture|X server]] and its [[X Window System protocols and architecture#The X client-server model and network transparency|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 [[Re-parenting window manager|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). |
||
Line 20: | Line 21: | ||
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. |
While the main aim of a window manager is to manage the windows, many window managers have additional features such as handling mouse clicks in the [[root window]], presenting panes and other visual elements, handling some keystrokes (e.g., Alt-F4 may close a window), deciding which application to run at start-up, etc. |
||
Standardized protocols exist to allow normal clients to communicate with the window manager. The original one is [[Inter-Client Communication Conventions Manual]] (ICCCM) but this has been superseded by the [[Extended Window Manager Hints]] (EWMH). |
Standardized protocols exist to allow normal clients to communicate with the window manager. The original one is [[Inter-Client Communication Conventions Manual]] (ICCCM) but this has been superseded by the [[Extended Window Manager Hints]] (EWMH). These protocols allow clients to request titles for windows and icons, check if a window is iconified which might be docked or minimized, and possibly customize windows decorations, what [[virtual desktop]] the window occupies.<ref name="EWMH" /> Additional information from the window manager is available through the core protocol including the visibility of windows such as if a window is hidden on a different [[Virtual desktop]], and figuring out the adjustments for the window manager frames.{{Citation needed|date=September 2018}} |
||
== |
==Types of window managers== |
||
===Stacking window managers=== |
===Stacking window managers=== |
||
Line 31: | Line 32: | ||
In contrast to ''compositing'' window managers (see below), the lack of separate [[off-screen buffer]]s can mean increased efficiency, but effects such as translucency are not possible. |
In contrast to ''compositing'' window managers (see below), the lack of separate [[off-screen buffer]]s can mean increased efficiency, but effects such as translucency are not possible. |
||
Stacking window managers include [[Amiwm]], [[Blackbox]], [[Enlightenment (window manager)|Enlightenment]], [[Fluxbox]], [[FVWM]], [[IceWM]], [[Motif Window Manager|MWM]], [[Openbox]] and [[Window Maker]]. |
Stacking window managers include [[Amiwm]], [[Blackbox]], [[CTWM]], [[Enlightenment (window manager)|Enlightenment]], [[Fluxbox]], [[FLWM]], [[FVWM]], [[IceWM]], [[Motif Window Manager|MWM]], [[Openbox]], [[Twm|TWM]] and [[Window Maker]]. |
||
=== |
===Tiling window managers=== |
||
{{Main|Tiling window manager}} |
{{Main|Tiling window manager}} |
||
Line 43: | Line 44: | ||
{{Main|Compositing window manager}} |
{{Main|Compositing window manager}} |
||
A '''compositing window manager''' may appear to the user similar to a stacking window manager. However, the individual windows are first rendered in individual buffers, and then their images are composited onto the screen buffer; this two-step process means that visual effects (such as shadows, translucency) can be applied. It also means that compositing window managers are inherently more resource-hungry than an equivalently-powerful stacking window manager. For this reason, some window managers for X do not support compositing by default, such as [[ |
A '''compositing window manager''' may appear to the user similar to a stacking window manager. However, the individual windows are first rendered in individual buffers, and then their images are composited onto the screen buffer; this two-step process means that visual effects (such as shadows, translucency) can be applied. It also means that compositing window managers are inherently more resource-hungry than an equivalently-powerful stacking window manager. For this reason, some window managers for X do not support compositing by default, such as [[Openbox]].[http://askubuntu.com/questions/53745/compositing-in-lubuntu Compositing in Lubuntu] |
||
[[Compositing window manager#History|Historically]], the Amiga in 1985, OSX in 2001 |
[[Compositing window manager#History|Historically]], the Amiga in 1985, OSX in 2001, Java Looking Glass in 2003, and the Windows Longhorn demo in 2003 (delayed until Vista in 2007) preceded compositing efforts under X11. Compositing window managers for X include: |
||
* [[GNOME]]'s [[Mutter (window manager)|Mutter]] née [[Metacity]] (first dev-branch compositor in 2.7{{citation needed|date=September 2013}} or 2.8 [http://webapp5.rrz.uni-hamburg.de/SuSe-Dokumentation/packages/metacity/NEWS] of 2004 [http://www.linuxtoday.com/developer/2004083101126NWGNRL]—original stable-branch compositor since 2.14 in 2005 [https://mail.gnome.org/archives/metacity-devel-list/2005-November/msg00063.html] or 2006 [https://mail.gnome.org/archives/metacity-devel-list/2006-February/msg00011.html]—current compositor architecture since 2.22 [http://tombuntu.com/index.php/2008/03/31/enable-metacity-compositing-in-gnome-222] in 2008—Metacity+Clutter begat [[Mutter (window manager)|Mutter]] in 2011), |
* [[GNOME]]'s [[Mutter (window manager)|Mutter]] née [[Metacity]] (first dev-branch compositor in 2.7{{citation needed|date=September 2013}} or 2.8 [https://web.archive.org/web/20140607010531/http://webapp5.rrz.uni-hamburg.de/SuSe-Dokumentation/packages/metacity/NEWS Wayback Machine] of 2004 [http://www.linuxtoday.com/developer/2004083101126NWGNRL Linux Today - Release Digest: GNOME, August 30, 2004]—original stable-branch compositor since 2.14 in 2005 [https://mail.gnome.org/archives/metacity-devel-list/2005-November/msg00063.html Re: About Compositing] or 2006 [https://mail.gnome.org/archives/metacity-devel-list/2006-February/msg00011.html Metacity branched for 2.14]—current compositor architecture since 2.22 [http://tombuntu.com/index.php/2008/03/31/enable-metacity-compositing-in-gnome-222 Enable Metacity Compositing in GNOME 2.22 | Tombuntu] in 2008—Metacity+Clutter begat [[Mutter (window manager)|Mutter]] in 2011), |
||
* [[Xfce]]'s |
* [[Xfce]]'s [[Xfwm]] (since 4.2 of 2004{{citation needed|date=September 2013}} or 2005 [https://web.archive.org/web/20150923235500/https://mail.xfce.org/pipermail/xfce/2005-January/012328.html Xfce 4.2.0 released!]), |
||
* [[Unity (user interface)|Unity]]'s [[Compiz]] (since 2005—was forked as [[Beryl (window manager)|Beryl]] in 2006 but the projects re-merged in 2007), and |
* [[Unity (user interface)|Unity]]'s [[Compiz]] (since 2005—was forked as [[Beryl (window manager)|Beryl]] in 2006 but the projects re-merged in 2007), and |
||
* [[KDE]]'s [[KWin]] (since 4.0 of 2008). |
* [[KDE]]'s [[KWin]] (since 4.0 of 2008). |
||
Compositing support can be added to non-compositing window managers, through the use of compositors such as ''compton''. |
|||
=== |
===Virtual window managers=== |
||
A '''virtual window manager''' is a window manager that uses virtual screens, whose resolution can be higher than the resolution of one's monitor/[[display adapter]] thus resembling a two dimensional [[virtual desktop]] with its [[viewport]]. This environment is very useful when one wishes to have a large number of windows open at the same time. A number of virtual window managers have been made, including [[FVWM]], [[Tvtwm]], [[HaZe]] and others. |
A '''virtual window manager''' is a window manager that uses virtual screens, whose resolution can be higher than the resolution of one's monitor/[[display adapter]] thus resembling a two dimensional [[virtual desktop]] with its [[viewport]]. This environment is very useful when one wishes to have a large number of windows open at the same time. A number of virtual window managers have been made, including [[FVWM]], [[Tvtwm]], [[HaZe]]<ref>{{cite web |title=HaZe - a real B&W; window manager |url=http://geocities.com/hazewm/ |website=HaZe Homepage |access-date=2024-08-31 |archive-date=2009-10-26 |archive-url=https://web.archive.org/web/20091026234522/http://geocities.com/hazewm/ |url-status=bot: unknown }}</ref> and others. |
||
=== |
===Extensible window managers=== |
||
{{Category see also|X window managers extensible by scripting}} |
{{Category see also|X window managers extensible by scripting}} |
||
Some window managers are extensible, or programmable, by user scripts. |
Some window managers are extensible, or programmable, by user scripts. |
||
Line 61: | Line 63: | ||
Some examples of such window managers and the used languages are: |
Some examples of such window managers and the used languages are: |
||
* [[Awesome (window manager)|Awesome]] - [[Lua (programming language)|Lua]] |
* [[Awesome (window manager)|Awesome]] - [[Lua (programming language)|Lua]]<ref>{{Cite web|url=https://awesomewm.org/|title=home|website=awesome window manager}}</ref> |
||
* [[KWin]] - [[ECMAScript]] |
* [[KWin]] - [[ECMAScript]] |
||
* [[Qtile]] - [[ |
* [[Qtile]] - [[Python (programming language)|Python]] |
||
* [[Sawfish (window manager)|Sawfish]] - "rep", a [[lisp (programming language)| |
* [[Sawfish (window manager)|Sawfish]] - "rep", a [[lisp (programming language)|Lisp]] dialect |
||
* [[Xmonad]] - [[haskell (programming language)|haskell]] |
* [[Xmonad]] - [[haskell (programming language)|haskell]] |
||
* [[StumpWM]] - [[Common Lisp]] |
|||
* [[GWM (window manager)|GWM]] - "WOOL", a Lisp dialect |
|||
* Bspwm - [[C (programming language)|C]] |
|||
==See also== |
|||
== X window managers == |
|||
* [[Comparison of X window managers]] |
|||
{{div col}} |
|||
* [[Re-parenting window manager]] for a popular implementation technique |
|||
*[[2wm]] |
|||
* [[X Window System protocols and architecture]] for context |
|||
*[[3dwm]] |
|||
*[[ |
* [[Windowing system]] |
||
* [[Wmctrl]] - a command-line utility used to control windows in EWMH and NetWM compatible window managers |
|||
*[[5Dwm]] (derived from [[Motif Window Manager|mwm]], true SGI look and feel) |
|||
* [[xdotool]] - another command-line utility used to control windows |
|||
*[[9wm]] (clone of the original windowing system of [[Plan 9 from Bell Labs|Plan 9]]) |
|||
* [[Wayland compositor]] |
|||
*[[aegis (window manager)|aegis]] |
|||
*[http://www.red-bean.com/~decklin/software/aewm/ aewm] |
|||
*[[aewm++]] |
|||
*[[AfterStep]] |
|||
*[[ahwm]] |
|||
*[[alloywm]] |
|||
*[[alptwm]] |
|||
*[[amaterus]] |
|||
*[[amiwm]] ([[Amiga]] [[Workbench (AmigaOS)|workbench]] [[unix-like|unix clone]]) |
|||
*[[anarchy (window manager)|anarchy]] |
|||
*[[antiwm]] |
|||
*[[asclassic]] |
|||
*[[awesome (window manager)|awesome]] |
|||
*[[Ardent Window Manager|awm]] |
|||
*[[badwm]] |
|||
*[[Beryl (window manager)|Beryl]] |
|||
*[[Blackbox]] (minimalist) |
|||
*[[bluetile]] |
|||
*[[blwm]] |
|||
*clfswm |
|||
*[[Compiz]] |
|||
*[[CTWM]] |
|||
*[[cwm (window manager)|cwm]] |
|||
*[[dwm]] |
|||
*[[evggww (Egg Window Manager - Qt based WM)]] |
|||
*[[Enlightenment (window manager)|Enlightenment]] |
|||
*[http://clivecrous.lighthouseapp.com/projects/11269/home EvilPoison] (a fork of evilwm with Ratpoison-like keybindings) |
|||
*[[Fluxbox]] (lightweight, based on Blackbox) |
|||
*[[FVWM]] (a [[virtual window manager]], derived from twm) |
|||
*[[FVWM95]] |
|||
*[[hackedbox]] |
|||
*[[HaZe]] |
|||
*[[i3 (window manager)|i3]] |
|||
*[[IceWM]] |
|||
*[[Ion (window manager)|Ion]] (a tiling tabbed window manager designed with keyboard users in mind) |
|||
*[[JWM]] (Joe's Window Manager) |
|||
*[[Kahakai]] |
|||
*[[KWin]] (originally called KWM, default for [[KDE]]) |
|||
*[[luminocity (window manager)|luminocity]] (experimentation in compositing) |
|||
*[[Lightweight window manager|LWM]] |
|||
*[[Matchbox (window manager)|Matchbox]] |
|||
*[[GNOME Shell|Mutter (GNOME Shell)]] (the current default for the [[GNOME]] [[desktop environment]]) |
|||
*[[Metacity]] (the previous default for the [[GNOME]] [[desktop environment]]) |
|||
*[http://miwm.sourceforge.net/index.php miwm] |
|||
*[[Motif Window Manager|mwm]] ([[Motif (software)|Motif]] Window Manager) |
|||
*[[olwm]] ([[OPEN LOOK]] window managers) |
|||
*[[olvwm]] ([[olwm]] with virtual desktops) |
|||
*[[Openbox]] (default for the [[LXDE]] desktop environment) |
|||
*[http://freshmeat.net/projects/orion/ Orion] (a nested (tiled or floating) window manager written in Scheme and scsh) |
|||
*Oroborus |
|||
*[https://www.pekwm.org/ PekWM] |
|||
*[[PLWM]] |
|||
*[[PWM (window manager)|PWM]] |
|||
*[http://freshmeat.net/projects/qvwm/ Qvwm] (Windows 95/98 look-alike) |
|||
*[[ratpoison]] |
|||
*[[Sawfish (window manager)|Sawfish]] (a past default for GNOME, originally called Sawmill) |
|||
*[[Scwm]] (the Scheme constraints window manager) |
|||
*[[SithWM]] evilwm-based, virtual window manager [[:de:SithWM|(German page)]] |
|||
*[[ratpoison#Stumpwm|Stumpwm]] (a tiling window manager written in Lisp) |
|||
*[[swm]] (the original virtual desktop implementation) |
|||
*[http://incise.org/tinywm.html tinywm] |
|||
*[https://code.google.com/p/toyd Toy'd] (a portable window manager for MS-Windows & UNIX / Linux platforms) |
|||
*TrsWM |
|||
*[[touchegg Window Manager]] (Qt based WM for multi-touch gestures ) |
|||
*[[twm]] (default for the X Window System since version X11R4) |
|||
*[http://uwm.sourceforge.net/ µwm] |
|||
*[[Ultrix Window Manager]] |
|||
*[[vtwm]] |
|||
*[http://www.freedesktop.org/Software/waimea Waimea] |
|||
*[[WindowLab]] |
|||
*[[Window Maker]] |
|||
*[[Wingo (window manager)|Wingo]] |
|||
*[[wm2]] |
|||
*[[wmii]] |
|||
*[[wmx]] |
|||
*[[Xfwm4]] (a window manager for the [[Xfce]] desktop environment) |
|||
*[[xmonad]] |
|||
*[[XPde|XPwm]] (for [[XPde]], Windows XP Look alike) |
|||
*[[xwm]] |
|||
*[http://sourceforge.net/projects/zappwm/ ZappWM], (based in [[Rox-filer]]) |
|||
{{div col end}} |
|||
== See also == |
|||
*[[Comparison of X window managers]] |
|||
*[[Re-parenting window manager]] for a popular implementation technique |
|||
*[[X Window System protocols and architecture]] for context |
|||
*[[Windowing system]] |
|||
*[[Wmctrl]] - a command line utility used to control windows in EWMH and NetWM compatible window managers |
|||
*[[xdotool]] - another command line utility used to control windows |
|||
*[[Wayland compositor]] |
|||
==References== |
==References== |
||
{{reflist}} |
{{reflist}} |
||
== |
==External links== |
||
* [ |
* [https://www.gilesorr.com/wm/table.html ''The Comprehensive List of Window Managers for Unix''] |
||
* [ |
* [https://wiki.archlinux.org/index.php/Window_manager#List_of_window_managers ''ArchWiki List of Window Managers for Linux''] |
||
* [http://www.gilesorr.com/wm/table.html ''The Comprehensive List of Window Managers for Unix''] |
|||
{{XWinSys}} |
{{XWinSys}} |
||
{{X desktop environments and window managers}} |
{{X desktop environments and window managers}} |
||
{{DEFAULTSORT:X Window Manager}} |
{{DEFAULTSORT:X Window Manager}} |
Latest revision as of 18:08, 19 November 2024
This article relies largely or entirely on a single source. (November 2011) |
An X window manager is a window manager that runs on top of the X Window System, a windowing system mainly used on Unix-like systems.
Unlike MacOS Classic, macOS, and Microsoft Windows platforms (excepting Microsoft Windows explorer.exe shell replacements), which have historically provided a vendor-controlled, fixed set of ways to control how windows and panes display on a screen, and how the user may interact with them, window management for the X Window System was deliberately kept separate from the software providing the graphical display. The user can choose between various third-party window managers, which differ from one another in several ways, including:
- customizability of appearance and functionality:
- textual menus used to start programs and/or change options
- docks and other graphical ways to start programs
- multiple desktops and virtual desktops (desktops larger than the physical monitor size), and pagers[1] to switch between them
- consumption of memory and other system resources
- degree of integration with a desktop environment, which provides a more complete interface to the operating system, and provides a range of integrated utilities and applications.
How X window managers work
[edit]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. Most modern window managers do not literally show icons to represent iconified windows anymore. Often, an auxiliary toolbar program will allow access to iconified windows.
While the main aim of a window manager is to manage the windows, many window managers have additional features such as handling mouse clicks in the root window, presenting panes and other visual elements, handling some keystrokes (e.g., Alt-F4 may close a window), deciding which application to run at start-up, etc.
Standardized protocols exist to allow normal clients to communicate with the window manager. The original one is Inter-Client Communication Conventions Manual (ICCCM) but this has been superseded by the Extended Window Manager Hints (EWMH). These protocols allow clients to request titles for windows and icons, check if a window is iconified which might be docked or minimized, and possibly customize windows decorations, what virtual desktop the window occupies.[1] Additional information from the window manager is available through the core protocol including the visibility of windows such as if a window is hidden on a different Virtual desktop, and figuring out the adjustments for the window manager frames.[citation needed]
Types of window managers
[edit]Stacking window managers
[edit]A stacking window manager renders the windows one-by-one onto the screen at specific co-ordinates. If one window's area overlaps another, then the window "on top" overwrites part of the other's visible appearance. This results in the appearance familiar to many users in which windows act a little bit like pieces of paper on a desktop, which can be moved around and allowed to overlap.
In contrast to compositing window managers (see below), the lack of separate off-screen buffers can mean increased efficiency, but effects such as translucency are not possible.
Stacking window managers include Amiwm, Blackbox, CTWM, Enlightenment, Fluxbox, FLWM, FVWM, IceWM, MWM, Openbox, TWM and Window Maker.
Tiling window managers
[edit]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, i3, xmonad, and XWEM.
Compositing window managers
[edit]A compositing window manager may appear to the user similar to a stacking window manager. However, the individual windows are first rendered in individual buffers, and then their images are composited onto the screen buffer; this two-step process means that visual effects (such as shadows, translucency) can be applied. It also means that compositing window managers are inherently more resource-hungry than an equivalently-powerful stacking window manager. For this reason, some window managers for X do not support compositing by default, such as Openbox.Compositing in Lubuntu
Historically, the Amiga in 1985, OSX in 2001, Java Looking Glass in 2003, and the Windows Longhorn demo in 2003 (delayed until Vista in 2007) preceded compositing efforts under X11. Compositing window managers for X include:
- GNOME's Mutter née Metacity (first dev-branch compositor in 2.7[citation needed] or 2.8 Wayback Machine of 2004 Linux Today - Release Digest: GNOME, August 30, 2004—original stable-branch compositor since 2.14 in 2005 Re: About Compositing or 2006 Metacity branched for 2.14—current compositor architecture since 2.22 Enable Metacity Compositing in GNOME 2.22 | Tombuntu in 2008—Metacity+Clutter begat Mutter in 2011),
- Xfce's Xfwm (since 4.2 of 2004[citation needed] or 2005 Xfce 4.2.0 released!),
- Unity's Compiz (since 2005—was forked as Beryl in 2006 but the projects re-merged in 2007), and
- KDE's KWin (since 4.0 of 2008).
Compositing support can be added to non-compositing window managers, through the use of compositors such as compton.
Virtual window managers
[edit]A virtual window manager is a window manager that uses virtual screens, whose resolution can be higher than the resolution of one's monitor/display adapter thus resembling a two dimensional virtual desktop with its viewport. This environment is very useful when one wishes to have a large number of windows open at the same time. A number of virtual window managers have been made, including FVWM, Tvtwm, HaZe[2] and others.
Extensible window managers
[edit]Some window managers are extensible, or programmable, by user scripts.
In these window managers, users can define new actions or override the default, or reactions to various events, like window size and position changes, window creation and deletion, key and mouse input, timer, etc. They often provide on-the-fly code execution, too.
Some examples of such window managers and the used languages are:
- Awesome - Lua[3]
- KWin - ECMAScript
- Qtile - Python
- Sawfish - "rep", a Lisp dialect
- Xmonad - haskell
- StumpWM - Common Lisp
- GWM - "WOOL", a Lisp dialect
- Bspwm - C
See also
[edit]- Comparison of X window managers
- Re-parenting window manager for a popular implementation technique
- X Window System protocols and architecture for context
- Windowing system
- Wmctrl - a command-line utility used to control windows in EWMH and NetWM compatible window managers
- xdotool - another command-line utility used to control windows
- Wayland compositor
References
[edit]- ^ a b "Extended Window Manager Hints". standards.freedesktop.org. Archived from the original on 2008-02-25. Retrieved 2018-09-16.
- ^ "HaZe - a real B&W; window manager". HaZe Homepage. Archived from the original on 2009-10-26. Retrieved 2024-08-31.
{{cite web}}
: CS1 maint: bot: original URL status unknown (link) - ^ "home". awesome window manager.