A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. [1] 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. [2] Elements usually associated with window managers allow the user to open, close, minimize, maximize, move, resize, and keep track of running windows, including window decorators. Many window managers also come with various utilities and features such as task bars, program launchers, docks to facilitate halving or quartering windows on screen, workspaces for grouping windows, desktop icons, 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. [3] [4] [5] [6]
In 1973, the Xerox Alto became the first computer shipped with a working WIMP GUI. It used a stacking window manager that allowed overlapping windows. [7] 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 for most main application windows, and used overlapping only for dialogue boxes, removing most of the need for stacking. [8]
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. [9]
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. [10] 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, Digital Research was forced to remove the stacking capabilities in GEM 2.0, making its window manager a tiling window manager. [11]
During the mid-1980s, Amiga OS contained an early example of a compositing window manager called Intuition (one of the low-level libraries of AmigaOS, which was present in Amiga system 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 blits 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 Workplace Shell that made its debut in OS/2 2.0. [12]
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 2, and KWin, used in KDE Plasma Workspaces, and many others. Since many window managers are modular,[ vague ] people can use others,[ vague ] such as Compiz (a 3D compositing window manager), which replaces the window manager.[ vague ] Sawfish and 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 decorations from KWin can be used with the desktop and dock components of GNOME.
X window managers also have the ability to 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 and stacking in various ways.
This section needs expansion. You can help by adding to it. (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 GDI is part of the kernel, [13] the role of the window manager is tightly coupled with the kernel's graphical subsystems and is largely non-replaceable, although 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. [14] It can only be restarted with the hotkey combination Ctrl+Shift+Win+B. [15]
Windows Explorer (explorer.exe) is used by default as the 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 .[ clarification needed ] [16] The Windows Shell is analogous to the desktop environment concept in other graphical user interface systems.
Since 2021 ChromeOS is shipped with its own window manager called Ash. [17] Chromium and ash share common codebase. [17] In the past one could run it by using google-chrome --open-ash
on any compatible systems.
Window managers are often divided into three or more classes, which describe how windows are drawn and updated.
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.
All window managers that have overlapping windows and are not compositing window managers are stacking window managers, 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 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 are available, such as i3, awesome, and dwm.
Dynamic window managers can dynamically switch between tiling or floating window layout. A variety of dynamic window managers for X are available.
An active window is the currently focused 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 and Microsoft Paint are open, clicking in the 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.
A context menu is a menu in a graphical user interface (GUI) that appears upon user interaction, such as a right-click mouse operation. A context menu offers a limited set of choices that are available in the current state, or context, of the operating system or application to which the menu belongs. Usually the available choices are actions related to the selected object. From a technical point of view, such a context menu is a graphical control element.
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.
In computing, a window is a graphical control element. It consists of a visual area containing some of the graphical user interface of the program it belongs to and is framed by a window decoration. It usually has a rectangular shape that can overlap with the area of other windows. It displays the output of and may allow input to one or more processes.
Mission Control is a feature of the macOS operating system. Dashboard, Exposé, and Spaces were combined and renamed Mission Control in 2011 with the release of Mac OS X 10.7 Lion. Exposé was first previewed on June 23, 2003, at the Apple Worldwide Developers Conference as a feature of the then forthcoming Mac OS X 10.3 Panther.
A stacking window manager is a window manager that draws and allows windows to overlap, without using a compositing algorithm. All window managers that allow the overlapping of windows but are not compositing window managers are considered stacking window managers, although it is possible that not all use exactly the same methods. Other window managers that are not considered stacking window managers are those that do not allow the overlapping of windows, which are called tiling window managers.
The taskbar is a graphical user interface element that has been part of Microsoft Windows since Windows 95, displaying and facilitating switching between running programs. The taskbar and the associated Start Menu were created and named in 1993 by Daniel Oran, a program manager at Microsoft who had previously collaborated on great ape language research with the behavioral psychologist B.F. Skinner at Harvard.
The Windows key is a keyboard key which was originally introduced on Microsoft's Natural Keyboard in 1994. Windows 95 used it to bring up the start menu and it then became a standard key on PC keyboards. Ctrl+Esc performs the same function, in case the keyboard lacks this key.
AfterStep is a stacking window manager for the X Window System. The goal of AfterStep's development is to provide for flexibility of desktop configuration, improved aesthetics and efficient use of system resources, and was used in such distributions as MachTen. AfterStep originally was a variant of FVWM modified to resemble NeXTSTEP, but as the development cycle progressed, it diverged from its FVWM roots. In 2000, Linux website TuxRadar selected AfterStep as one of the year's best window managers, praising it as "fast and reliable, with a huge range of configuration options and the ability to create some spectacular themes".
In computing, a virtual desktop is a term used with respect to user interfaces, usually within the WIMP paradigm, to describe ways in which the virtual space of a computer's desktop environment is expanded beyond the physical limits of the screen's display area through the use of software. This compensates limits of the desktop area and is helpful in reducing clutter of running graphical applications.
The Start menu is a graphical user interface element that has been part of Microsoft Windows since Windows 95, providing a means of opening programs and performing other functions in the Windows shell. The Start menu, and the Taskbar on which it appears, were created and named in 1993 by Daniel Oran, a program manager at Microsoft who had previously collaborated on great ape language research with the behavioral psychologist B.F. Skinner at Harvard.
A menu bar is a graphical control element which contains drop-down menus.
In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach of coordinate-based stacking of overlapping objects (windows) that tries to fully emulate the desktop metaphor.
Windows Aero is the design language introduced in the Microsoft Windows Vista operating system. The changes introduced by Windows Aero encompassed many elements of the Windows interface, with the introduction of a new visual style with an emphasis on animation, glass, and translucency; interface guidelines for phrasing and tone of instructions and other text in applications were available. New cursors and sounds based on Windows Aero design principles were also introduced.
A compositing manager, or compositor, is software that provides applications with an off-screen buffer for each window. The compositing manager composites the window buffers into an image representing the screen and writes the result into the display memory. A compositing window manager is a window manager that is also a compositing manager.
The Windows shell is the graphical user interface for the Microsoft Windows operating system. Its readily identifiable elements consist of the desktop, the taskbar, the Start menu, the task switcher and the AutoPlay feature. On some versions of Windows, it also includes Flip 3D and the charms. In Windows 10, the Windows Shell Experience Host interface drives visuals like the Start Menu, Action Center, Taskbar, and Task View/Timeline. However, the Windows shell also implements a shell namespace that enables computer programs running on Windows to access the computer's resources via the hierarchy of shell objects. "Desktop" is the top object of the hierarchy; below it there are a number of files and folders stored on the disk, as well as a number of special folders whose contents are either virtual or dynamically created. Recycle Bin, Libraries, Control Panel, This PC and Network are examples of such shell objects.
WindowLab is an X window manager for Unix-like systems. It is based on aewm and retains that window manager's lightweight aesthetic. In many aspects, WindowLab has looked to the Amiga's user interface for inspiration without cloning it completely. Its top-level menu bar is accessed by a right click as on the Amiga and it follows Fitts's law of usability in that once the mouse enters the menu area it is constrained there in both the horizontal and vertical directions. Unlike on the Amiga, the menu bar is not controlled by applications; it is a global launcher menu which is populated by a dot file in the user's home directory containing a list of menu titles and commands.
Vtwm is an X window manager that was developed from the twm codebase. The first release was in 1990, and it is very much an "old school" window manager, lacking desktop environment features. It added features like xpm icons, autoraising of windows, and a virtual desktop; the latter feature is from where the program takes its name. Later additions include playing sounds in response to window manager events, and Motif-style window decorations in place of the "flat," 2D titlebars commonly associated with twm.
In computing, the icon bar is the name of the dock in Acorn's RISC OS operating system, and is fundamental to the OS. Its introduction in 1987 was a new concept in GUIs. It displays icons through which access is provided to all parts of the computer that a typical user will require, from physical devices and system utilities to running applications, and will usually be their starting point for interacting with the system once it has finished booting.
Task View is a task switcher and virtual desktop system introduced in Windows 10 and is among the first features new to Windows 10. Task View allows a user to quickly locate an open window, quickly hide all windows and show the desktop, and to manage windows across multiple monitors or virtual desktops. Clicking the Task View button on the taskbar or swiping from the left side of the screen displays all open windows and allows users to switch between them, or switch between multiple workspaces. It was first previewed on September 30, 2014, at a Windows 10 press event in downtown San Francisco. A redesigned Task View with support for giving different wallpapers on each desktop has been introduced in Windows 11.