International Symposium on Software Composition

Compositing window manager

A compositing window manager, or compositor, is a window manager that provides applications with an off-screen buffer for each window. The window manager composites the window buffers into an image representing the screen and writes the result into the display memory.

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.

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.

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

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.

Under Linux and UNIX, the ability to do full 3D-accelerated compositing required fundamental changes to X11 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.

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.

While they are able to run on 3D-capable hardware, AmigaOS 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.

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.

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.

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).

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.

Gradual and natural transitions may be 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.