Compositing window manager

Last updated

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. [1] [2]

Contents

Compositing managers may perform additional processing on buffered windows, applying 2D and 3D animated effects such as blending, fading, scaling, rotation, duplication, bending and contortion, shuffling, blurring, redirecting applications, and translating windows into one of a number of displays and virtual desktops. Computer graphics technology allows for visual effects to be rendered in real time such as drop shadows, live previews, and complex animation. [3] [4] Since the screen is double buffered, it does not flicker during updates.

The most commonly used compositing managers and compositing window managers include:

Contrast with stacking window managers

The window manager sends each window a message to repaint itself when needed. Windows may overlap. When a window in front is moved, it can reveal an area of a window behind that was previously concealed. Window managers are broadly categorised by their strategy for causing that newly revealed area to be displayed to the user. In the "stacking" strategy, the window manager tells the back window to repaint itself. In the "compositing" strategy, the window manager maintains an off-screen memory buffer containing the full appearance of each window, including the back window.

With a stacking manager, the repainting process can become corrupted when a program that is slow, unresponsive or buggy does not respond to messages in a timely manner. [5] [6] A malicious program can cause the system to appear unstable by simply neglecting to repaint its window. Then, one or more of the following conditions may result:

With a compositing manager, if a window stops repainting itself when requested by the window manager, its last repaint will remain displayed and the window might be dimmed. Often, the title changes to reflect the status of the window as unresponsive. A program may prevent its window from being moved or unmapped, but generally will not cause repainting problems.

History

One of the first systems with a compositing windowing system was the Commodore Amiga, released in 1985. 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. [9]

Metacity window manager, part of GNOME 2 Gnome-2.20-screenshot.png
Metacity window manager, part of GNOME 2

On March 24, 2001, Mac OS X v10.0 became the first mainstream operating system to feature software-based 3D compositing and effects, provided by its Quartz component. With the release of Mac OS X v10.2 and Quartz Extreme, the job of compositing could move to dedicated graphics hardware. [2] [10]

In 2003 Sun Microsystems demonstrated an ambitious 3D graphics system called Project Looking Glass to layer on top of its Swing toolkit. It was first shown at the 2003 LinuxWorld Expo. Although Apple threatened to sue Sun for breach of intellectual-property rights, other window managers have implemented some of the functionality in Looking Glass. By 2006 development was discontinued by Sun, whose primary business was transitioning from graphically oriented Unix workstations to selling enterprise mainframes. [11]

Microsoft first presented the Desktop Window Manager in Project Longhorn to the 2003 Windows Hardware Engineering Conference, demonstrating wobbly windows. [12] Severe delays in the development of Longhorn caused Microsoft not to debut its 3D-compositing window-manager until the release of Windows Vista in January 2007. [13]

Implementing compositing under the X Window System required some redesign, which took place incrementally. [14] Metacity 2.8.4 was released in August 2004. [15] However, the first widely publicized compositing window manager for X was Xfwm, released in January 2005. [16] On 26 January 2005 Compiz was released, introducing fully accelerated 3D-compositing to the Linux platform. [17] KDE's KWin also supports compositing.

Compositing and 3D effects in operating systems

In compositing, 3D effects could be applied on windows to provide 3D desktop effects. Modern compositing window managers use 3D hardware acceleration. Compositing window manager software communicates with graphics hardware via programming interfaces such as OpenGL or Direct3D.

The earliest widespread implementations using this technique were released for the Mac in Mac OS X 10.2, and for Linux in a Luminocity prototype. Currently, window managers using OpenGL include Compiz, KWin, and the Quartz Compositor, while Desktop Window Manager currently uses DirectX 9. OpenGL is still not fully supported in hardware, so performance of OpenGL-based compositing should continue to improve as hardware improves[ citation needed ].

X11 and Wayland

Stacking window managers running on the X Window System (X11) required a chroma keying or green screening extension.[ citation needed ] Compositing was introduced by way of the Composite Extension. Compositing managers use hardware acceleration through this extension, if available.

Ubuntu 8.04 Hardy Heron running Compiz's Shift Switcher in Flip mode Compiz-ShiftSwitcher.png
Ubuntu 8.04 Hardy Heron running Compiz's Shift Switcher in Flip mode

Under X11, the ability to do full 3D-accelerated compositing required fundamental changes to the window system protocol in order to use hardware acceleration. Originally, a number of modified X11 implementations designed around OpenGL began to appear, including Xgl. The introduction of AIGLX would eliminate the need to use Xgl, and allow window managers to do 3D accelerated compositing on a standard X server, while still allowing for direct rendering. Currently, NVIDIA, Intel, and ATI cards support AIGLX.

Compiz introduced a cube effect, which allows the user to see up to 6 virtual desktops at once. Each desktop is converted into a surface texture of the cube, which can be rotated at will. Compiz displays a wide array of 2D and 3D effects and has relatively low hardware requirements. [18] In 2012, Compiz was included in Ubuntu Linux, and was enabled automatically when supported hardware and drivers were available and the user had not selected 2D Mode. [19]

Mutter (Metacity + Clutter) has replaced Metacity as the default window manager for GNOME. It is featured in the GNOME Shell component of GNOME 3.0. It uses the display engine Clutter, which has been ported to all major operating systems, netbooks and smartphones.

Since version 4, KDE's window manager KWin has compositing capabilities. KWin features much of the same functionality also present in Compiz.

With the Wayland protocol, a compositing window manager is also a display server; there is no display server separate from the window manager. The combined window manager/display server is called a Wayland compositor. Weston is a reference implementation of a Wayland compositor; KWin and Mutter are also Wayland compositors as well as being X11 compositing window managers.

Java

Project Looking Glass was a window manager combining 3D rendering and the cross-platform Java programming language. It is now inactive and released under the GNU General Public License. The Granular Linux live CD distribution includes Looking Glass as an optional window manager.

In the aftermath of it being discontinued, some of its features, such as cover switching and thumbnail live previews, have found their way onto other window managers. Its more original features included window tilting, two-sided window frames and parallax scrolling backgrounds.

AmigaOS 4 and MorphOS

While they are able to run on 3D-capable hardware, AmigaOS 4 and MorphOS are designed to run on old legacy Amiga computers, starting with the Amiga 1200. As such, their window managers have mostly planar rendering capabilities that include composite layering, alpha blending, gradients, high resolution and multiple desktops ("screens") that can partially clip one another.

Microsoft Windows

While the window manager in Windows 2000 does perform compositing, it does not perform transformations such as a per-pixel alpha. Few commercial applications took advantage of alpha blending; freeware programs were among the first to experiment with it, albeit through optional settings. [20] [21] Compositing was introduced with Desktop Window Manager in Windows Vista. [1]

Windows Vista and Windows 7 allow the user to disable Desktop Window Manager by selecting the Windows Basic appearance settings. In addition, it is automatically disabled by Windows in order to perform hardware overlay through the Overlay Mixer Filter.

Usability and eye candy

The compositing approach makes it easier to implement a number of features that make the user interface more accessible, simpler to use or with eye candy elements.

Magnifiers

The magnification effect in Compiz (click image to view in scale) Magnifier - Compiz.png
The magnification effect in Compiz (click image to view in scale)

Vector graphics, such as TrueType fonts and 3D-accelerated elements, can be expanded without degradation (usually due to aliasing). A screen magnifier enlarges an area of the screen, making portions of text easier to read – whether to prevent eye strain, for the visually impaired, or simply at a distance. Zoom effects such as the fish eye magnifier and zoom desktop effects provide this functionality.

Live preview

A preview of a window can be displayed in a pop-up thumbnail when the user hovers its associated taskbar button. This allows the user to identify and manage several concurrently running programs.

Window switching

Basic window switching in Xgl Xgl window switching.png
Basic window switching in Xgl

Windows with similar names and icons tend to cause confusion, especially when their title bars overlap; the position of every such window on the taskbar has to be memorized. When there are many open windows in this manner, the user often has to resort to trial and error—clicking each taskbar button one-by-one—before proceeding. Window switching allows one to quickly preview several windows at once by temporarily rearranging them against a decorative background. After a selection is made, the windows are then restored to their original arrangement.

Selection begins when the user either enters a hotkey combination, moves the mouse pointer to a hotspot on the screen, or, in some situations, uses the mouse's scroll wheel. Items are navigated using the keyboard or mouse. An item is selected by either releasing the hotkey, hitting the Enter key or clicking on it with the mouse.

Flip switching

Flip switching in Compiz Compiz-fusion-switcher-flip.jpg
Flip switching in Compiz

The flip switcher is an enhancement to the Alt-Tab switching feature. Running windows are arranged into a stack – similar to a flip-style selector in a 1950s jukebox, or a Rolodex. In some systems, the user can press Alt-Shift-Tab to navigate backwards. Visual transitions are applied to each item while navigating.

Common implementations of flip switching include Flip 3D in Windows and Shift Switcher in Compiz.

Cover switching

Cover Switch in KWin Kwin Cover Switch.png
Cover Switch in KWin

Cover switching is like flip switching with a few, mostly visual, differences. Instead of one stack with the selection at the top, two symmetrical stacks are shown with the current selection front and center (similar to the window tilting feature in Looking Glass).

Cover Flow is an implementation of cover switching in macOS. More recent versions use blurring to de-emphasize non-selected items. Cover Flow has also been implemented in other software published by Apple such as iTunes.

This is also referred to as "flick-book view."

Ring switching

Ring switching in Compiz Fusion Cf-ring-switcher.png
Ring switching in Compiz Fusion

Ring switching is like flip switching, except the windows move in a circle, with the current selection in front, usually at the bottom. Most compositing window managers include this feature out of the box, and third-party applications, such as 3d-desktop, are also available.

Grouping

The user can group windows together, such that only one window at a time is visible in each group. In Compiz, the window frame is flipped to indicate when the active window in its group has been changed.

Exposé

macOS displays a preview of every window on the screen by tiling them. Other systems with similar functionality (Microsoft Windows, Compiz, KWin, third-party applications) are referred to as Exposé clones. The hotkey to activate Exposé is not Alt-Tab, but rather F3.

Mission Control

Mac OS X 10.7 combines several other compositing features developed by Apple—such as Exposé, Dashboard, and Spaces—into a larger program called Mission Control.

Widget engines

On macOS, "widgets" (single-purpose applets) such as a clock, note pad, and calculator can appear by pressing a hotkey. Widget engines speed work by keeping commonly used widgets accessible while unobtrusive. They are handled by the Dashboard program in macOS.

Compiz starts with a blank Widget Layer, allowing the user to add applications by clicking on them. A variety of widgets are supported, including Screenlets, gDesklets and SuperKaramba. [22]

Windows Vista provides gadgets that the user can place on the Windows Sidebar (Sidebar gadgets), a Windows Live start page (Web gadgets), or an external display, such as the user's mobile phone (SideShow gadgets). The Windows Sidebar was a visible partition in Windows Vista, and was eliminated in Windows 7, along with Sidebar gadgets which were changed to Desktop Gadgets.

Transitions and other effects

Before compositing window managers were developed, windows would instantly jump in and out of view, which is incongruent with the interface metaphor (and with a physical office setting). Some systems like the Classic Mac OS avoided this issue with ZoomRects, animating the windows outline "zooming" toward its final position. [23] But on most systems, the sudden appearance and disappearance of GUI elements may seem confusing or even chaotic to inexperienced users.[ citation needed ] Visual transitions provide context and help distinguish the causal relationships of GUI elements. Instead of just disappearing, a window may fade away, or visibly shrink to the taskbar. A pull-down menu that has been clicked may smoothly radiate outward from the menu bar, making it easier to determine its origin and purpose.

Gradual and natural transitions may be[ original research? ] especially helpful for elderly or visually impaired users who notice changes to the screen more slowly and with less clarity. For example, an inexperienced user may impulsively click on a menu that was activated by accident, causing him or her to lose work. The short delay necessary to display a visual transition may give the user enough time to make a conscious decision, and avoid such mistakes.

User interface façades

Metisse implements user interface façades, a system that provides users with simple ways to adapt, reconfigure, and recombine existing graphical interfaces, through the use of direct manipulation techniques. [24]

List of compositing window managers

List of standalone compositing managers

Operating systems with compositing window managers

See also

Related Research Articles

<span class="mw-page-title-main">Graphical user interface</span> User interface allowing interaction through graphical icons and visual indicators

A graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.

<span class="mw-page-title-main">X Window System</span> Windowing system for bitmap displays on UNIX-like systems

The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems.

In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphical shell. The desktop environment was seen mostly on personal computers until the rise of mobile computing. Desktop GUIs help the user to easily access and edit files, while they usually do not provide access to all of the features found in the underlying operating system. Instead, the traditional command-line interface (CLI) is still used when full control over the operating system is required.

<span class="mw-page-title-main">X window manager</span> Type of 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.

<span class="mw-page-title-main">Windowing system</span> Software that manages separately different parts of display screens

In computing, a windowing system is a software suite that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.

<span class="mw-page-title-main">Mission Control (macOS)</span> Feature of the macOS operating system

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.

<span class="mw-page-title-main">Stacking window manager</span>

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.

Project Looking Glass is a now inactive free software project under the GPL to create an innovative 3D desktop environment for Linux, Solaris, and Windows. It was sponsored by Sun Microsystems.

<span class="mw-page-title-main">Window manager</span> Type of system software

A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. 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.

<span class="mw-page-title-main">Xgl</span> Display server implementation

Xgl is an obsolete display server implementation supporting the X Window System protocol designed to take advantage of modern graphics cards via their OpenGL drivers, layered on top of OpenGL. It supports hardware acceleration of all X, OpenGL and XVideo applications and graphical effects by a compositing window manager such as Compiz or Beryl. The project was started by David Reveman of Novell and first released on January 2, 2006. It was removed from the X.org server in favor of AIGLX on June 12, 2008.

<span class="mw-page-title-main">Virtual desktop</span> User interfaces describe ways in which virtual space of a computers desktop is expanded

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.

In computing, hardware overlay, a type of video overlay, provides a method of rendering an image to a display screen with a dedicated memory buffer inside computer video hardware. The technique aims to improve the display of a fast-moving video image — such as a computer game, a DVD, or the signal from a TV card. Most video cards manufactured since about 1998 and most media players support hardware overlay.

<span class="mw-page-title-main">Tiling window manager</span> Window manager with non-overlapping frames

In computing, a tiling window manager is a window manager with the organization of the screen often dependant on mathematical formulas to organise the windows into a non-overlapping frame. This is opposed to the more common approach used by stacking window managers, which allow the user to drag windows around, instead of windows snapping into a position. This allows for a different style of organization, although it strays from the traditional desktop metaphor.

Desktop Window Manager is the compositing window manager in Microsoft Windows since Windows Vista that enables the use of hardware acceleration to render the graphical user interface of Windows.

<span class="mw-page-title-main">Compiz</span> Compositing window manager for the X Window System

Compiz is a compositing window manager for the X Window System, using 3D graphics hardware to create fast compositing desktop effects for window management. Effects, such as a minimization animation or a cube workspace, are implemented as loadable plugins. Because it conforms to the ICCCM conventions, Compiz can be used as a substitute for the default Mutter or Metacity, when using GNOME Panel, or KWin in KDE Plasma Workspaces. Internally Compiz uses the OpenGL library as the interface to the graphics hardware.

Avant Window Navigator is a dock-like bar for Linux, which sits on an edge of a user's screen and tracks open windows. Instead of representing open windows as buttons or segments on a bar, it uses large icons on a translucent background to increase readability and add visual appeal. The program was created by Neil J. Patel.

<span class="mw-page-title-main">WindowLab</span> Window manager for Unix-like systems

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.

Client-side decoration (CSD) is the concept of allowing a graphical application software to be responsible for drawing its own window decorations, historically the responsibility of the window manager.

References

  1. 1 2 "Desktop Window Manager". Microsoft Learn. 23 August 2019. Retrieved 25 April 2023.
  2. 1 2 "Mac OS X 10.4 Tiger: Page 13". Arstechnica.com. 28 April 2005. Retrieved 21 November 2008.
  3. "Compiz.org :: Home/Start – Compiz". Compiz.org. Archived from the original on 12 October 2006. Retrieved 21 November 2008.
  4. "Blueprint: "Compositing window management (compiz/beryl)"". Blueprints.launchpad.net. 17 October 2006. Retrieved 21 November 2008.
  5. "Multiple Internet Explorer Instances Do Not Redraw Screen Correctly". Microsoft. 9 October 2003. Retrieved 17 December 2010.
  6. "PHOTOSCORE SUPPORT FAQ" . Retrieved 17 December 2010.
  7. "Mouser cursor corruption on xinerama". Canonical Ltd. 2 August 2006. Retrieved 17 December 2010.
  8. "Mustang: Swing apps freeze then painting corrupt". Oracle. 1 May 2006. Archived from the original on 26 July 2011. Retrieved 17 December 2010.
  9. "Amiga RKM Libraries Manual".
  10. "A Brief History of Mac OS X". Kernelthread.com. Archived from the original on 22 January 2009. Retrieved 21 November 2008.
  11. Markoff, John (26 April 2007). "Sun and I.B.M. to Offer New Class of High-End Servers". The New York Times.
  12. "Microsoft's Longhorn 3D UI– More Info Emerges". ExtremeTech.
  13. "Microsoft Windows History". Computerhope.com. Retrieved 21 November 2008.
  14. "The (Re)Architecture of the X Window System". Keithp.com. Retrieved 21 November 2008.
  15. "Metacity 2.8.4". Linux Compatible. 30 August 2004. Retrieved 13 June 2023.
  16. "Xfce 4.2.0 released!". foo-projects.org. 16 January 2005. Retrieved 25 February 2009.
  17. "Version History – Preferences Hide and Seek". Hideseek.sourceforge.net. Retrieved 21 November 2008.
  18. "Installing/running Compiz on GeForce2 MX/MX 400".
  19. "What is the app, "compiz" responsible for on ubuntu 12.04?".
  20. "Example alpha transparency utility".
  21. "Alpha Blending (Transparent) Windows". CodeGuru. Archived from the original on 30 June 2008. Retrieved 26 July 2008.
  22. "Plugins/Widget - Compiz Wiki". Compiz. Archived from the original on 23 December 2010. Retrieved 26 December 2010.
  23. "High Tech Binoculars". 11 January 2017.
  24. "Metisse: User Interface Façades". Metisse. Archived from the original on 30 August 2011. Retrieved 3 August 2011.
  25. 3Dwm - About, 23 January 2004, archived from the original on 6 February 2004, retrieved 4 February 2010
  26. 3Dwm - About - FAQ - About the Project, 3 December 2003, archived from the original on 24 February 2004, retrieved 4 February 2010
  27. 3D window manager, archived from the original on 17 July 2011, retrieved 16 December 2010
  28. Yeargin, Ray (31 March 2005), 3DWM: A screenshot look at the 3D desktop , retrieved 16 December 2010