Compositing window manager: Wikis

Advertisements
  
  

Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.

Encyclopedia

From Wikipedia, the free encyclopedia

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

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 display and interact with each other, and with the rest of the desktop environment. The main difference between a compositing window manager and other window managers 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.[1][2]

The window manager then processes and combines, or composites, output from these separate buffers 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.[3][4] Because the programs draw to the off-screen buffer, all graphics are naturally double buffered and thus do not flicker as they are updated.

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

Contents

History

Metacity window manager, part of GNOME.

On 2001-03-24, Mac OS X v10.0 became 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 2002-08-13, 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.[2][5]

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, one of the first X Window System compositing window managers (as of 2009 included with GNOME) was released in August of 2004.[7] 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. [8] As of 2009 KDE's KWin also supports compositing.[6] On 2005-01-26, Compiz was released for Linux and added fully accelerated 3D compositing to the Linux platform.[9]

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

Basic 2D compositing

On-screen 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.

Metacity, for example, draws windows separately and then adds them 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. It 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

As of 2009 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 its version 10.0 which included the Quartz Compositor.

Some compositing window managers may use OpenGL or DirectX to offload the rendering work to the video card. The first published implementation using this technique on the Mac was 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, KDE, 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.

Advertisements

Linux

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

Under Linux/UNIX the ability to do full 3D-accelerated compositing relied on several architectural changes in the implementation of X11. These changes allowed parts of the graphical environment to be run directly on the graphics card. Originally, a number of alternated 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 allowing for direct rendering. Currently NVIDIA, Intel and ATI cards support AIGLX.

Compiz's cube effect has arguably made it best known on Linux. Compiz includes a wide array of 2D and 3D effects and runs even on somewhat dated hardware.[12] Compiz is integrated into the default Ubuntu Linux desktop, and is enabled automatically when supported hardware and drivers are available.

Since version 4, KDE also includes an advanced 3D-accelerated compositing window manager called KWin. KWin boasts a somewhat smaller feature set than Compiz, but is better integrated with the desktop and easier to configure.

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 included a working compositing window manager last. Although Longhorn's compositor was demonstrated extensively in WinHEC 2003, including "floppy" windows that would be seen in Compiz two years later,[10] the development of Windows Vista extended for years past its initial plans due to other factors, thus delaying use of the compositor.

Microsoft Windows has natively supported alpha blending since Windows 2000.[13] Technically, this does compositing, but without any transformations and with a per-pixel alpha, features that are normally associated with compositing as of 2009. 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.[14]

Usability considerations

While compositing window managers have earned a reputation for dazzling visual effects and for 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 makes text clearer to read from a distance, or to 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 the 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

Users may open several applications with similar names and icons. Since the full names of windows are often 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 X now provide a number of improvements to allow the user to more easily see and choose from running programs. Hovering over task-bar items can elicit live previews of windows, allowing users to monitor and more easily identify each program.

Exposé 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

Both Linux and Windows Vista feature flip switchers 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 Exposé 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 user presses a certain key, 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 visually out of the way, reducing clutter.

Compiz (Linux) starts with a blank widget layer, 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 users can place 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. Some users find jerky movement of windows and their tendency to suddenly appear and disappear on the screen confusing or even intimidating.

Some effects can help to give 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 those elderly or visually impaired users 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

See also

External links

References

  1. ^ a b c "Desktop Window Manager". Msdn2.microsoft.com. http://msdn2.microsoft.com/en-us/library/aa969540(VS.85).aspx. Retrieved 2008-11-21.  
  2. ^ a b "Mac OS X 10.4 Tiger: Page 13". Arstechnica.com. http://arstechnica.com/reviews/os/macosx-10-4.ars/13. Retrieved 2008-11-21.  
  3. ^ "Compiz.org :: Home/Start – Compiz". Compiz.org. http://compiz.org/. Retrieved 2008-11-21.  
  4. ^ "Blueprint: “Compositing window management (compiz/beryl)”". Blueprints.launchpad.net. https://blueprints.launchpad.net/ubuntu/+spec/composite-by-default. Retrieved 2008-11-21.  
  5. ^ "A Brief History of Mac OS X". Kernelthread.com. http://www.kernelthread.com/mac/osx/history.html. Retrieved 2008-11-21.  
  6. ^ a b "The (Re)Architecture of the X Window System". Keithp.com. http://keithp.com/~keithp/talks/xarch_ols2004/xarch-ols2004-html/. Retrieved 2008-11-21.  
  7. ^ "pkgsrc.se | The NetBSD package collection". Pkgsrc.se. http://pkgsrc.se/wm/metacity/commit. Retrieved 2008-11-21.  
  8. ^ "Xfce 4.2.0 released!". foo-projects.org. 2005-01-16. http://foo-projects.org/pipermail/xfce/2005-January/012311.html. Retrieved 2009-02-25.  
  9. ^ "Version History – Preferences Hide and Seek". Hideseek.sourceforge.net. http://hideseek.sourceforge.net/history.html. Retrieved 2008-11-21.  
  10. ^ a b "Microsoft's Longhorn 3D UI– More Info Emerges". ExtremeTech. http://www.extremetech.com/article2/0,1697,1154262,00.asp.  
  11. ^ "Microsoft Windows History". Computerhope.com. http://www.computerhope.com/history/windows.htm. Retrieved 2008-11-21.  
  12. ^ "Installing/running Compiz on GeForce2 MX/MX 400". http://forum.compiz-fusion.org/showthread.php?t=6623.  
  13. ^ "Alpha Blending (Transparent) Windows". CodeGuru. http://www.codeguru.com/cpp/frameworks/advancedui/windowingtechniquesandclasses/article.php/c3213/.  
  14. ^ "Example alpha transparency utility". http://www.elgorithms.com/downloads/chaoscrystal.php.  

Advertisements






Got something to say? Make a comment.
Your name
Your email address
Message