Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Window manager
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Type of system software}} [[File:Schema of the layers of the graphical user interface.svg|thumb|Layers of the graphical user interface:<br />Under X, the '''window manager''' and the [[display server]] are two distinct programs; but under Wayland, the function of both is handled by the Wayland compositor.]] [[File:Window (windowing system).svg|thumb|Typical elements of a '''[[Window (computing)|window]]'''. The [[window decoration]] is either drawn by the window manager or by the client. The drawing of the content is the task of the client.]] [[File:Windowmanager ohne.png|thumb|Under X11, when the window manager is not running, the window decorations are missing for most windows.]] A '''window manager''' is [[system software]] that controls the placement and appearance of [[window (computing)|windows]] within a [[windowing system]] in a [[graphical user interface]].<ref>{{Cite web|url=http://www.dictionary.com/browse/window-manager|title=Window manager|website=Dictionary.com|archive-url=https://web.archive.org/web/20160311131437/http://www.dictionary.com/browse/window-manager|archive-date=11 March 2016}}</ref> Most window managers are designed to help provide a [[desktop environment]]. They work in conjunction with the underlying graphical system that provides required functionality—support for graphics hardware, pointing devices, and a keyboard—and are often written and created using a [[widget toolkit]]. Few window managers are designed with a clear distinction between the [[windowing system]] and the window manager. Every graphical user interface based on a [[windows metaphor]] has some form of window management. In practice, the elements of this functionality vary greatly.<ref>{{Cite web|url=https://www.pcmag.com/encyclopedia/term/54598/window-manager|title=window manager Definition from PC Magazine Encyclopedia|website=www.pcmag.com}}</ref> Elements usually associated with window managers allow the user to open, close, minimize, maximize, move, resize, and keep track of running windows, including [[window decorator]]s. Many window managers also come with various utilities and features such as [[task bar]]s, program launchers, docks to facilitate halving or quartering windows on screen, workspaces for grouping windows, [[desktop icon]]s, wallpaper, an ability to keep select windows in foreground, the ability to "roll up" windows to show only their title bars, to cascade windows, to stack windows into a grid, to group windows of the same program in the task bar in order to save space, and optional multi-row taskbars.<ref>{{cite web |last1= Shultz |first1=Greg |title=Toggling Windows XP's taskbar grouping feature |url=https://www.techrepublic.com/article/toggling-windows-xps-taskbar-grouping-feature/ |website=[[TechRepublic]] |language=en |access-date=7 January 2022 |date=24 May 2006}}</ref><ref>{{cite web |last1=Kaufman |first1=Lori |title=How to Roll a Window Up Into its Title Bar in Linux Mint 12 |url=https://www.howtogeek.com/105009/roll-up-a-window-in-linux-mint-12/ |website=How-To Geek |access-date=7 January 2022 |date=2012-02-10}}</ref><ref>{{cite web |last1=Kirk |first1=David |title=XP and Vista: Tile, Cascade, or Minimize Windows |url=https://www.tech-recipes.com/rx/188/xp_vista_tile_cascade_minimize_windows/ |website=Tech-Recipes: A Cookbook Full of Tech Tutorials |access-date=7 January 2022 |language=en |date=12 October 2003}}</ref><ref>{{cite web |last1=Newell |first1=Gary |title=How to Use Linux Style Virtual Workspaces in Windows 10 |url=https://www.lifewire.com/use-linux-style-virtual-workspaces-in-windows-10-4101797 |website=Lifewire |access-date=7 January 2022 |language=en |date=2020-07-24}}</ref> == History == {{Main article|History of the graphical user interface}} In 1973, the [[Xerox Alto]] became the first computer shipped with a working [[WIMP (computing)|WIMP]] [[Graphical user interface|GUI]]. It used a [[stacking window manager]] that allowed overlapping windows.<ref>{{Cite web |author-first=Nathan |author-last=Lineback |url=http://toastytech.com/guis/alto3.html|title=The Xerox Alto|website=toastytech.com}}</ref> However, this was so far ahead of its time that its design paradigm would not become widely adopted until more than a decade later. While it is unclear if [[Microsoft Windows]] contains designs copied from Apple's [[classic Mac OS]], it is clear that neither was the first to produce a GUI using stacking windows. In the early 1980s, the [[Xerox Star]], successor to the Alto, used [[Tiling window manager|tiling]] for most main application windows, and used overlapping only for dialogue boxes, removing most of the need for stacking.<ref>{{Cite web |author-first=Nathan |author-last=Lineback |url=http://toastytech.com/guis/star.html|title=The Xerox Star|website=toastytech.com}}</ref> The [[classic Mac OS]] was one of the earliest commercially successful examples of a GUI that used a sort of stacking window management via [[QuickDraw]]. Its successor, [[macOS]], uses a somewhat more advanced window manager that has supported compositing since [[Mac OS X 10.0]], and was updated in [[Mac OS X 10.2]] to support hardware accelerated compositing via the [[Quartz Compositor]].<ref name="quartz">{{Cite web|url=https://arstechnica.com/gadgets/2005/04/macosx-10-4/13/|title=Mac OS X 10.4: Quartz|first=John|last=Siracusa|date=28 April 2005|website=[[Ars Technica]]}}</ref> [[GEM 1.1]], from [[Digital Research]], was a [[operating environment]] that included a stacking window manager, allowing all windows to overlap. It was released in the early 1980s.<ref name="Lineback_GEM11"/> [[GEM (desktop environment)|GEM]] is famous for having been included as the main GUI used on the [[Atari ST]], which ran [[Atari TOS]], and was also a popular GUI for [[MS-DOS]] prior to the widespread use of Microsoft Windows. As a result of a lawsuit by [[Apple Computer|Apple]], Digital Research was forced to remove the stacking capabilities in GEM 2.0, making its window manager a tiling window manager.<ref name="Lineback_GEM20"/> During the mid-1980s, [[Amiga OS]] contained an early example of a compositing window manager called ''[[Intuition (Amiga)|Intuition]]'' (one of the low-level libraries of AmigaOS, which was present in Amiga system [[Read-only memory|ROMs]]), capable of recognizing which windows or portions of them were covered, and which windows were in the foreground and fully visible, so it could draw only parts of the screen that required refresh. Additionally, Intuition supported compositing. Applications could first request a region of memory outside the current display region for use as bitmap. The Amiga windowing system would then use a series of [[bit blit]]s using the system's hardware [[blitter]] to build a composite of these applications' bitmaps, along with buttons and sliders, in display memory, without requiring these applications to redraw any of their bitmaps. In 1988, [[Presentation Manager]] became the default shell in [[OS/2]], which, in its first version, only used a [[command line interface]] (CLI). [[IBM]] and Microsoft designed OS/2 as a successor to DOS and Windows for DOS. After the success of Windows 3.10, however, Microsoft abandoned the project in favor of Windows. After that, the Microsoft project for a future OS/2 version 3 became [[Windows NT]], and IBM made a complete redesign of the shell of OS/2, substituting the Presentation Manager of OS/2 1.x for the [[Object-oriented user interface|object-oriented]] [[Workplace Shell]] that made its debut in OS/2 2.0.<ref>{{Cite web|url=http://www.os2bbs.com/OS2News/OS2History.html|title=OS/2 History|archive-url=https://web.archive.org/web/19980213061837/http://www.os2bbs.com/OS2News/OS2History.html|archive-date=13 February 1998}}</ref> == Examples == === X window managers === {{Main article|X window manager}} On systems using the [[X window system]], there is a clear distinction between the window manager and the [[windowing system]]. Strictly speaking, an [[X window manager]] does not directly interact with video hardware, mice, or keyboards – that is the responsibility of the [[display server]]. Users of the X Window System have the ability to easily use many different window managers – [[Metacity]], used in [[GNOME#GNOME 2|GNOME 2]], and [[KWin]], used in [[KDE Plasma Workspaces]], and many others. Since many window managers are modular,{{Vague|date=April 2023|reason=What does "modular" mean here?}} people can use others,{{Vague|date=April 2023|reason=Other than what? The default window manager for the platform?}} such as [[Compiz]] (a 3D [[compositing window manager]]), which replaces the window manager.{{Vague|date=April 2023|reason=What is "the" window manager? If you're using Compiz, isn't *it* "the window manager"?}} [[Sawfish (window manager)|Sawfish]] and [[Awesome (window manager)|awesome]] on the other hand are [[extensible]] window managers offering exacting window control. Components of different window managers can even be mixed and matched; for example, the [[window decoration]]s from [[KWin]] can be used with the [[Desktop metaphor|desktop]] and [[Dock (computing)|dock]] components of GNOME. X window managers also have the ability to [[re-parenting window manager|re-parent]] applications, meaning that, while initially all applications are adopted by the [[root window]] (essentially the whole screen), an application started within the root window can be adopted by (i.e., put inside of) another window. Window managers under the X window system adopt applications from the root window and re-parent them to apply window decorations (for example, adding a title bar). Re-parenting can also be used to add the contents of one window to another. For example, a [[flash player]] application can be re-parented to a browser window, and can appear to the user as supposedly being part of that program. Re-parenting window managers can therefore arrange one or more programs within the same window, and can easily combine [[tiling window manager|tiling]] and [[stacking window manager|stacking]] in various ways. {{Further|Re-parenting window manager}} === Microsoft Windows === <!-- {{see|Windows XP|Stacking window manager}} --> {{Expand section|date=August 2011}} Microsoft Windows has provided an integrated stacking window manager since [[Windows 2.0]]; [[Windows Vista]] introduced the compositing [[Desktop Window Manager]] (dwm.exe) as an optional hardware-accelerated alternative. In Windows, since [[Graphics Device Interface|GDI]] is part of the kernel,<ref>{{cite web|url=http://windowsitpro.com/Windows/Articles/ArticleID/2469/pg/2/2.html|title=Windows NT 4.0|author=Pleas|first=Keith|date=April 1996|website=Windows IT Pro|archive-url=https://web.archive.org/web/20070310105758/http://www.windowsitpro.com/Windows/Articles/ArticleID/2469/pg/2/2.html/|archive-date=March 10, 2007|access-date=May 17, 2019}}</ref> the role of the window manager is tightly coupled with the kernel's graphical subsystems and is largely non-replaceable, although [[Tiling window manager#Third-party addons|third-party utilities]] can be used to simulate a tiling window manager on top of such systems. Since [[Windows 8]], the [[Direct3D]]-based Desktop Window Manager can no longer be disabled.<ref>{{Cite web|url=https://docs.microsoft.com/en-us/windows/win32/w8cookbook/desktop-window-manager-is-always-on|title=Desktop Window Manager is always on - Win32 apps|website=docs.microsoft.com}}</ref> It can only be restarted with the hotkey combination Ctrl+Shift+Win+B.<ref>[https://support.microsoft.com/en-in/help/4496075/windows-10-troubleshooting-black-or-blank-screens Troubleshooting black or blank screens in Windows 10]</ref> [[Windows Explorer]] (explorer.exe) is used by default as the ''[[shell (computing)|shell]]'' in modern Windows systems to provide a taskbar and file manager, along with many functions of a window manager; aspects of Windows can be modified through the provided configuration utilities, modifying the [[Windows Registry]] or with 3rd party tools, such as [[WindowBlinds]] or [[Resource Hacker]]. A complete X Windows Server, allowing the use of window managers ported from the unixoid world can also be provided for Microsoft Windows through [[Cygwin/X]] even in ''multiwindow'' mode (and by other X Window System implementations). Thereby, it is easily possible to e.g. have X Window System client programs running either in the same Cygwin environment on the same machine, or on a Linux, BSD Unix etc. system via the network, and only their GUI being displayed and usable on top of the Microsoft Windows environment. Note that Microsoft and X Window System use different terms to describe similar concepts. For example, there is rarely any mention of the term ''window manager'' by Microsoft because it is integrated and non-replaceable, and distinct from the ''[[shell (computing)|shell]]''.{{Clarify|reason=Which shell?|date=October 2021}}<ref>{{Cite web|date=2009-10-26|title=Yes, there's a new desktop window manager, but no, I don't know any more about it than you do|url=https://devblogs.microsoft.com/oldnewthing/20091026-00/?p=16273|access-date=2021-10-06|website=The Old New Thing|language=en-US}}</ref> The [[Windows Shell]] is analogous to the [[desktop environment]] concept in other graphical user interface systems. === ChromeOS === Since 2021 [[ChromeOS]] is shipped with its own window manager called Ash.<ref name=":0">{{Cite web|title=ash - chromium/src - Git at Google|url=https://chromium.googlesource.com/chromium/src/+/refs/heads/main/ash/|access-date=2021-10-06|website=chromium.googlesource.com}}</ref> Chromium and ash share common [[codebase]].<ref name=":0" /> In the past one could run it by using {{Code|google-chrome --open-ash}} on any compatible systems. == Types == Window managers are often divided into three or more classes, which describe how windows are drawn and updated. === Compositing window managers === {{Main article|Compositing window manager}} Compositing window managers let all windows be created and drawn separately and then put together and displayed in various 2D and 3D environments. The most advanced compositing window managers allow for a great deal of variety in interface look and feel, and for the presence of advanced 2D and 3D visual effects. === Stacking window managers === {{Main article|Stacking window manager}} All window managers that have overlapping windows and are not compositing window managers are [[stacking window manager]]s, although it is possible that not all use the same methods. Stacking window managers allow windows to overlap by drawing background windows first, which is referred to as the [[painter's algorithm]]. Changes sometimes require that all windows be re-stacked or repainted, which usually involves redrawing every window. However, to bring a background window to the front usually only requires that one window be redrawn, since background windows may have bits of other windows painted over them, effectively erasing the areas that are covered. === Tiling window manager === {{Main article|Tiling window manager}} Tiling window managers paint all windows on-screen by placing them side by side or above and below each other, so that no window ever covers another. Microsoft Windows 1.0 used tiling, and a variety of tiling window managers for [[X Window System|X]] are available, such as [[i3 (window manager)|i3]], [[awesome (window manager)|awesome]], and [[dwm]]. === Dynamic window manager === {{Main article|Dynamic window manager}} Dynamic window managers can dynamically switch between tiling or floating window layout. A variety of dynamic window managers for [[X Window System|X]] are available. == Features and facilities of window managers == ;Autohide : An autohide facility enables [[menubar]]s to disappear when the [[pointer (computing WIMP)|pointer]] is moved away from the edge of the screen. ;Borders : A border is a [[window decoration]] component provided by some window managers, that appears around the [[active window]]. Some window managers may also display a border around [[background window]]s. ;Context menu : Some window managers provide a [[context menu]] that appears when an alternative click event is applied to a desktop component. [[File:KDE Plasma 5 - Desktop standard menu context menu.png|thumb|right|400px|alt=Example of a context menu|Example of a context menu]] ;Desktop wallpaper : Some window managers provide a [[desktop wallpaper]] facility that displays a background picture in the [[root window]]. ;Focus stealing : [[Focus stealing]] is a facility some window managers provide. It allows an application not in focus to suddenly gain focus and steal user input intended for the previously focused application. ;Iconification : An iconification facility lets users minimize running applications to a [[Desktop metaphor|desktop]] icon or [[taskpanel]] icon. ;Joined windows : Some window managers provide a [[joined windows]] facility that lets user join application window frames together. ;Keyboard equivalents : Some window managers provide [[keyboard equivalent]]s that enables the keyboard to replicate [[Mouse (computing)|mouse]] functionality. ;Menubar : A [[menubar]] provides the facility to launch programs via a menu and may contain additional facilities including a [[start button]], a [[taskbar]], and a [[system tray]]. ;Menu panel : A [[menu panel]] a component of some window managers that provides the facility to launch programs using a menu. A [[menu panel]] is similar to a [[menubar]], but appears as a floating [[panel (computer software)|panel]], rather than a horizontal or vertical bar. : The [[menu panel]] may contain additional facilities including a [[start button]], a [[task panel]], and a [[system tray]]. ;Mouse focus : The [[mouse focus]] model determines how the [[pointing device]] affects the input focus within the window manager. The focus model determine which component of the [[graphical user interface]] is currently selected to receive input as the [[pointer (computing WIMP)|pointer]] is moved around the screen. ;Mouse warping : [[Mouse warping]] is a facility that centres the pointer on the current application as it is made active. ;Multiple desktops : A window manager may provide a [[multiple desktops]] facility. This enables switching between several [[root window]] desktops. This prevents clutter of the [[root window]], because applications can run on different [[Desktop metaphor|desktop]]s. ;Pager : Some window managers provide a [[Pager (GUI)|pager]] tool that provides the facility to switch between [[multiple desktops]]. The [[Pager (GUI)|pager]] may appear as an onscreen window or as a gadget in the [[taskbar]] or [[taskpanel]]. ;Plugins : Some window managers have a modular construction that enables plug-in [[Modular programming|module]]s to provide features as required. ;Rollup : A rollup facility enables windows to appear as just a [[titlebar]] on the desktop. ;Root Menu : Some window managers provide a [[root menu]], which appears when the [[root window]] or [[desktop background]] is touched. ;Shortcuts : Some window managers provide a [[File shortcut|shortcut]] facility that lets users place icons on the [[root window]] that access specific programs or facilities. ;Tabbed windows : Some window managers provide a [[tabbed windows]] facility that groups applications together in common frames. ;Task switching : The window manager may provide various task switching facilities that let the user change the currently focused application, including: :* Changing the [[mouse focus]] using a pointing device :* Keyboard task switching facilities (for example, by pressing Alt-Tab) :* Clicking on the task in a [[taskbar]] or [[taskpanel]] ;Taskbar : Some window managers provide a [[taskbar]] that shows running applications. The [[taskbar]] may show all applications that are running including those that have been [[minimized]], and may provide the facility to switch [[Focus (computing)|focus]] between them. The [[taskbar]] may be incorporated into a [[menubar]] on some window managers. ;Task panel : A [[task panel]] is similar to a [[taskbar]], but appears as a floating [[panel (computer software)|panel]], rather than a horizontal or vertical bar. ;Start button : A start button is a desktop widget that provides a menu of programs that can be launched. The start button is typically placed on a [[menubar]] at the bottom of the screen. ;Notification area : A [[notification Area]] is used to display [[icons]] for system and program features that have no [[Window (computing)|desktop window]]. It contains mainly [[icons]] to indicate status information and notifications such as arrival of a new mail message. Some systems may also show a clock in the [[Notification Area]]. ;Title bars : A [[title bar]] is a [[window decoration]] component some window managers provide at the top of each window. The [[titlebar]] is typically used to display the name of the application, or the name of the open document, and may provide title bar buttons for minimizing, maximizing, closing or rolling up of application windows. ;Title bar buttons : Title bar buttons are included in the [[title bar]] of some window managers, and provide the facility to minimize, maximize, rollup or close application windows. Some window managers may display the [[titlebar]] buttons in the [[taskbar]] or [[task panel]], rather than in a [[titlebar]]. ;Virtual desktop : A [[virtual desktop]] (also called a scrolling desktop) is a facility some window managers provided that lets the desktop be larger than the actual screen === {{Anchor|active window}}Windows navigation === An active window is the currently focused [[window (computing)|window]] in the current window manager. Different window managers indicate the currently-active window in different ways and allow the user to switch between windows in different ways. For example, in Microsoft Windows, if both [[Notepad (Windows)|Notepad]] and [[Microsoft Paint]] are open, clicking in the [[Notepad (Windows)|Notepad]] window will cause that window to become active. In Windows, the active window is indicated by having a different colored title bar. Clicking is not the only way of selecting an active window, however: some window managers (such as [[FVWM]]) make the window under the mouse pointer active—simply moving the mouse is sufficient to switch windows; a click is not needed. Window managers often provide a way to select the active window using the keyboard as an alternative to the mouse. One typical key combination is [[Alt+Tab]], used by Windows and [[KDE]] (by default, though this is user-configurable); another is [[apple key]]-tilde, used by Macintosh. Pressing the appropriate key combination typically cycles through all visible windows in some order, though other actions are possible. Many, though not all, window managers provide a region of the screen containing some kind of visual control (often a button) for each window on the screen. Each button typically contains the title of the window and may also contain an icon. This area of the screen generally provides some kind of visual indication of which window is active—for example, the active window's button may appear “pushed in”. It is also usually possible to switch the active window by clicking on the appropriate button. In Microsoft Windows, this area of the screen is called the ''taskbar''; in Apple Macintosh systems this area of the screen is called the dock. The active window may not always lie in front of all other windows on the screen. The active window is simply the window to which keys typed on the keyboard are sent; it may be visually obscured by other windows. This is especially true in window managers which do not require a click to change active windows: [[FVWM]], for example, makes active the window under the mouse cursor but does not change its [[Z-order]] (the order in which windows appear, measured from background to foreground). Instead, it is necessary to click on the border of the window to bring it to the foreground. There are also situations in click-to-focus window managers such as Microsoft Windows where the active window may be obscured; however, this is much less common. == See also == * [[Operating environment]] * [[Comparison of X window managers]] == References == {{Reflist|refs= <ref name="Lineback_GEM11">{{cite web |author-first=Nathan |author-last=Lineback |url=http://toastytech.com/guis/gem11.html |title=GEM 1.1 screenshots |work=Toastytech.com |access-date=2016-08-01 |url-status=live |archive-url=https://web.archive.org/web/20191225055144/http://toastytech.com/guis/gem11.html |archive-date=2019-12-25}}</ref> <ref name="Lineback_GEM20">{{cite web |author-first=Nathan |author-last=Lineback |url=http://toastytech.com/guis/gem20.html |title=GEM 2.0 Screen Shots |work=Toastytech.com |access-date=2016-08-01 |url-status=live |archive-url=https://web.archive.org/web/20190822172443/http://toastytech.com/guis/gem20.html |archive-date=2019-08-22}}</ref> }} {{X desktop environments and window managers}} {{DEFAULTSORT:Window Manager}} [[Category:Window managers|*]] [[Category:Graphical user interfaces]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Anchor
(
edit
)
Template:Cite web
(
edit
)
Template:Clarify
(
edit
)
Template:Code
(
edit
)
Template:Expand section
(
edit
)
Template:Further
(
edit
)
Template:Main article
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Vague
(
edit
)
Template:X desktop environments and window managers
(
edit
)