Compositing window manager 

Compiz, a compositing window manager, showing the desktop cube effect.

A compositing window manager is a component of a computer's graphical user interface that draws windows and/or their borders. It also controls how they are displayed and interact with each other, and the rest of the desktop environment. The main difference between compositing window manager and a standard window manager is that instead of outputting to a common screen, programs each output first to a separate and independent buffer, or temporary location inside the computer, where they can be manipulated before they are shown.12

The output from these separate buffers is then processed and combined by the window manager, or composited, onto a common desktop. The result is that the programs now behave as independent 2D or 3D objects.1 Compositing allows for advanced visual effects, such as transparency, fading, scaling, duplicating, bending and contorting, shuffling, and redirecting applications. The addition of a virtual third dimension allows for features such as realistic shadows beneath windows, the appearance of distance and depth, live thumbnail versions of windows, and complex animations, to name just a few.34

The most commonly-used compositing window managers are the Desktop Window Manager in Microsoft Windows, the Quartz Compositor in Mac OS X, and Compiz for Linux and OpenSolaris systems.

Contents

History

Metacity window manager, part of GNOME.

On March 24, 2001, Mac OS X v10.0 was the first mainstream operating system to ship with working compositing and effects, provided by its Quartz component. However compositing was not accelerated using hardware. On August 13, 2002 with the release of Mac OS X v10.2 and Quartz Extreme, the job of compositing could be moved to the video card (for certain types of card), where it took advantage of the hardware's drawing capabilities.25

Compositing under the X Window System required some redesign, which took place gradually, and slowly opened up many new possibilities.6 Metacity 2.8.4 was one of the first X Window System compositing window managers, which is now included with GNOME, and was released in August of 2004.7 (Although unconfirmed reports say that the functionality had been in CVS and contained in the unstable release 2.7.0 in November 2003, as well as the stable release 2.8.0 in February 2004.)citation needed

However the first widely-publicized compositing window manager for X was Xfwm, which is part of the Xfce desktop environment, and was released in January 2005.citation needed KDE's KWin now also supports compositing.6 On January 26, 2005, Compiz was released on Linux and added fully accelerated 3D compositing to the Linux platform.8

A compositing window manager for Microsoft Windows codename Longhorn, the Desktop Window Manager, was first demonstrated in WinHEC 2003, including "Compiz-style" floppy windows.9 Windows Vista was severely delayed, however, and so Windows did not gain compositing capabilities until Vista was released in January 2007.10

Basic 2D compositing

Windows are naturally 2D planar objects, and as such, window managers work mainly in 2D. This presents issues when extending the manager into three dimensions, or when attempting to create 3D-style visual effects.

In Metacity, for example, windows are drawn separately, and then added to the desktop, so even hidden parts of windows have been actively rendered. While still possessing many of the properties of their 3D counterparts, the output from 2D compositing window managers has no depth, meaning that windows still exist in a plane, and shadows, if supported, will be less realistic.

Compositing managers usually depend on the "Composite" extension of the X server; the compositing manager uses hardware acceleration through this extension, if available.

While not noticeably different to the naked eye, 2D compositing creates a more realistic model of the windowing system than traditional stacking window managers, which allows for features like window translucency and eliminates the need for chroma keying or green screening in the X video extension.

3D compositing window managers

Recently several 3D accelerated compositing window managers have become mainstream, including Compiz, Compiz Fusion, and Desktop Window Manager. Mac OS X has been using compositing windowing functions since Mac OS X 10.0 which shipped with the Quartz Compositor.

OpenGL or DirectX may be used in some compositing window managers to offload the rendering work to the video card. The first published implementation using this technique under Mac OS X 10.2, and on Linux it was the Luminocity prototype. As of 2008, some window managers using OpenGL include Compiz, Beryl, and the Quartz Compositor, while presently Desktop window manager uses DirectX 9.

Since some of OpenGL is still not supported in hardware, performance of OpenGL-based compositing should continue to improve as 3D cards improve. The popularity of stream processors in modern graphics cards opens up new possibilities for hardware acceleration, which can be accessed directly through CUDA. Note: CUDA is the GPGPU (general purpose graphics processing unit) API for Nvidia cards. Accessing a GPGPU requires both a hardware interface and a software API. CUDA is Nvidia's implementation and only works with certain Nvidia cards. ATI has yet to provide a publicly accessible API for their cards. Also GPGPU's are very efficient at processing massively parallel algorithms, meaning a singular function on a large data set. As such, using a video card's stream processors is only efficient in parallel operations, which does include some graphical processing, like ray tracing, but largely the applications for GUGPU's are unrelated to graphical processing. Currently neither Cuda 1 nor Cuda 2.0 can run with AIXGL/XGL active, a conflict over control of the GUGPU exits between AIXGL/XGL or perhaps the composite manager and CUDA, causing CUDA applications to fail while the AIXGL/XGL+composite manger is active.

Linux

Ubuntu 8.04 Hardy Heron running Compiz-Fusion's Shift Switcher in Flip mode.
Further information: AIGLX

Under Linux/UNIX, despite the presence of compositing support in X11, the ability to do full 3D accelerated compositing relies on several architectural changes in the implementation to X11. These changes allow parts of the graphical environment to be run directly on the graphics card. Originally, a number of alternate X11 implementations designed around OpenGL began to appear, including Xgl, which uses OpenGL to provide a fully 3D environment for window managers.

Later, AIGLX would eliminate the need to use Xgl, and allow window managers to do 3D accelerated compositing on a standard X server, while still enabling DRI to reach the graphics card. Currently NVidia, Intel and ATI cards support AIGLX.

Compiz is probably the most well known on Linux for its cube effect. It includes a wide array of impressive 2D and 3D effects and runs very well even on slightly older video hardware.

Microsoft Windows

The release of Windows Vista in November 2006 introduced 3D compositing capabilities to Microsoft Windows, with the new Desktop Window Manager.1

Of the three most popular mainstream desktop operating systems, (Microsoft Windows, Mac OS X, and Linux), Microsoft Windows was the last to include a working compositing window manager. However, the Desktop Window Manager was among the first to actually be developed: Longhorn's compositor was demonstrated extensively in WinHEC 2003, including "floppy" windows that would be seen in Compiz two years later.9 The development of Windows Vista extended for years past its initial plans due to other factors, however, and so with it the compositor.

Microsoft Windows has natively supported alpha blending since Windows 2000.11 Few applications took advantage of it, though numerous small freeware utilities sprung up which used the capability to enable the user to set a custom transparency level on any window.12

Usability considerations

While compositing window managers have earned a reputation for dazzling visual effects, and faster speed, they also play a role in computer usability. The very purpose of a windows metaphor is to improve computer usability by using familiar concepts. Through the use of compositing and 3D it should be possible to improve the quality of the metaphor, and in doing so improve the usability of the interface as a whole.

Magnifiers

The magnification effect in Compiz.

Screen magnifiers can quickly allow a user to zoom in on an area of the screen. This allows text to be clearly read from a distance, or by someone who is visually impaired. Zoom effects such as the magnifier (specifically the fish eye) and zoom desktop effects found in Compiz provide this functionality. These effects can be easily adjusted using keyboard and mouse shortcuts.

While useful for those who are visually impaired,the ability to zero in on a column of text or other application area may have broad application, enabling a user to more easily focus on a specific area of the screen, while larger text may help reduce eye strain.

Window switching

Live previews under Compiz

Often users have several applications open with similar names, and icons. For example it's not uncommon to have 10–20 web browser windows open at the same time. Since the full names of windows are generally at least partly obscured, normally one would have to remember where each program is located on the task bar, or use a variety of other memory and visual cues. This problem only gets worse with many windows open, eventually causing users resort to trial and error; clicking on each button until the right window pops up.

Compiz (Linux), Windows Vista, and Mac OS now provide a number of improvements to allow the user to more easily see and choose from running programs. Live previews of windows are available when task bar items are hovered over, allowing users to monitor and more easily identify each program.

Expose on Mac, also known as Scale under Compiz (Linux) scales and tiles all windows on the screen, allowing them all to be seen at once. As a result, a user can quickly identify the desired application by its visual appearance.

The Compiz Flip Switcher

Flip switchers are present in both Linux and Windows Vista with very similar look and feel. Both allow the user to use the mouse wheel or keyboard to flip through a stack of running windows in the same way one would shuffle through a deck of cards, providing similar usability to the Expose feature.

Widget layers

Widget layers exist on Linux and Mac OS as well. On Mac OS, specifically designed and frequently used applications such as a clock, note pad, and calculator appear when a certain key is pressed, providing quick access to these commonly used tools. Widget layers speed work by keeping commonly used functionality loaded and quickly accessible while also keeping it out of the way, reducing clutter.

Under Compiz (Linux) the widget layer is blank initially, allowing the user to specifically designate (by clicking on them) which applications belong in the widget layer.

Windows Vista also provides similar functionality through gadgets which can be placed on the Windows Sidebar.

Transitions and other effects

In the real world, papers generally don't suddenly disappear from one's desktop, and drawers don't instantly pop out of a desk. For many users jerky movement of windows and their tendency to suddenly appear and disappear on the screen can be confusing or even intimidating.

Some effects can be useful in giving the user a visual heads-up as to what is going on. Instead of just disappearing, windows may fade away, or visibly shrink to the task bar, helping to avoid the visual confusion often associated with things suddenly appearing and disappearing. Pull down menus may glide down from the menu bar, making it clearer where they originate.

While generally improving usability, these effects may be especially helpful for the elderly or visually impaired who notice changes to the screen more slowly and with less clarity. Gradual and more intuitive changes such as smooth movements may help. For example a menu suddenly appearing under the mouse when accidentally activated with the keyboard may cause some users to accidentally click on menu commands before they notice it's there, causing them to lose work. A short transition may catch the user's eye in time to avoid making this mistake.

List of compositing window managers

Operating systems with compositing window managers

External links

References

  1. ^ a b c "Desktop Window Manager". Msdn2.microsoft.com. Retrieved on 2008-11-21.
  2. ^ a b "Mac OS X 10.4 Tiger: Page 13". Arstechnica.com. Retrieved on 2008-11-21.
  3. ^ "Compiz.org :: Home/Start – Compiz". Compiz.org. Retrieved on 2008-11-21.
  4. ^ "Blueprint: “Compositing window management (compiz/beryl)”". Blueprints.launchpad.net. Retrieved on 2008-11-21.
  5. ^ "A Brief History of Mac OS X". Kernelthread.com. Retrieved on 2008-11-21.
  6. ^ a b "The (Re)Architecture of the X Window System". Keithp.com. Retrieved on 2008-11-21.
  7. ^ "pkgsrc.se | The NetBSD package collection". Pkgsrc.se. Retrieved on 2008-11-21.
  8. ^ "Version History – Preferences Hide and Seek". Hideseek.sourceforge.net. Retrieved on 2008-11-21.
  9. ^ a b "Microsoft's Longhorn 3D UI– More Info Emerges". ExtremeTech.
  10. ^ "Microsoft Windows History". Computerhope.com. Retrieved on 2008-11-21.
  11. ^ "Alpha Blending (Transparent) Windows". CodeGuru.
  12. ^ "Example alpha transparency utility".