Window manager: Difference between revisions
m →History |
Golftheman (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
A '''window manager''' is [[system software]] that controls the placement and appearance of [[window (computing)|windows]] within a [[windowing system]] in a [[graphical user interface]].<ref>[http://dictionary.reference.com/browse/window%20manager Window manager definition]</ref> Most window managers are designed to help provide a [[desktop environment]]. They work in conjunction with the underlying graphical system which provides required functionality such as support for graphics hardware, pointing devices, and a keyboard, and are often written and created using a [[widget toolkit]].<ref>[http://linux.wikia.com/wiki/X_Window_System_protocols_and_architecture X Window System protocols and architecture]</ref> |
A '''window manager''' is [[system software]] that controls the placement and appearance of [[window (computing)|windows]] within a [[windowing system]] in a [[graphical user interface]].<ref>[http://dictionary.reference.com/browse/window%20manager Window manager definition]</ref> Most window managers are designed to help provide a [[desktop environment]]. They work in conjunction with the underlying graphical system which provides required functionality such as support for graphics hardware, pointing devices, and a keyboard, and are often written and created using a [[widget toolkit]].<ref>[http://linux.wikia.com/wiki/X_Window_System_protocols_and_architecture X Window System protocols and architecture]</ref> |
||
Few window managers are designed with clear distinction between the windowing system and the window manager. Every graphical |
Few window managers are designed with clear distinction between the windowing system and the window manager. Every graphical user interface which uses a [[windows metaphor]] has some form of window management; however, in practice, the elements of this functionality vary greatly.<ref>[http://www.pcmag.com/encyclopedia_term/0,2542,t=window+manager&i=54598,00.asp Window manager definition]</ref> The elements usually associated with window managers are those which allow the user to open, close, minimize, maximize, move, resize, and keep track of running windows, including [[window decorator]]s. Many window managers also come with other programs what offers docks, [[task bar]]s, program launchers, desktop icons, and wallpaper with own features. |
||
== X window managers == |
== X window managers == |
||
Line 8: | Line 8: | ||
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, which is the responsibility of the [[X server]]. |
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, which is the responsibility of the [[X server]]. |
||
Users of the X Window System have the ability to easily use many different window managers such as those included in [[GNOME]] |
Users of the X Window System have the ability to easily use many different window managers such as those included in [[GNOME]] as [[Metacity]] and [[KWin]]used in [[KDE Workspace]], and many others. Since many window managers are modular, people can use others such as [[Compiz]] (a 3D [[compositing window manager]]), which replaces the windowmanager. Components of different window managers can even be mixed and matched; for example, the [[window decoration]]s from KDE Workspace's [[KWin]] can be used with the [[Desktop metaphor|desktop]] and [[Dock (computing)|dock]] components of GNOME. |
||
X window managers also have the ability to [[re-parenting window manager|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 (put inside of) another window. Window managers under the X window system adopt applications from the root window and re-parent them to window decorations (for example, adding a title bar). Re-parenting can also be used to allow the contents of one window to be added to another; for example, a [[flash player]] application can be re-parented to a browser window, and can appear to the naked eye as supposedly being part of that program. Re-parenting window managers can therefore arrange one or more programs into the same window, and can easily combine [[tiling window manager|tiling]] and [[stacking window manager|stacking]] in various ways. |
X window managers also have the ability to [[re-parenting window manager|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 (put inside of) another window. Window managers under the X window system adopt applications from the root window and re-parent them to window decorations (for example, adding a title bar). Re-parenting can also be used to allow the contents of one window to be added to another; for example, a [[flash player]] application can be re-parented to a browser window, and can appear to the naked eye as supposedly being part of that program. Re-parenting window managers can therefore arrange one or more programs into the same window, and can easily combine [[tiling window manager|tiling]] and [[stacking window manager|stacking]] in various ways. |
||
Line 17: | Line 17: | ||
<!-- {{see|Windows XP|Stacking window manager}} --> |
<!-- {{see|Windows XP|Stacking window manager}} --> |
||
{{Expand section|date=December 2009}} |
{{Expand section|date=December 2009}} |
||
The [[Windows Explorer]] (explorer.exe) is not only a file manager, but also has many functions of a window manager, and is used by default in modern Windows systems. |
The [[Windows Explorer]] (explorer.exe) is not only a file manager, but also has many functions of a window manager, and is used by default in modern Windows systems{{citation needed}}. |
||
Almost all features of Windows can be modified, though. One way of doing this is through a resource editor such as [[Resource hacker]]. Windows can also be skinned using a program such as [[WindowBlinds]]. Limited customization is possible by modifying the [[Windows registry]] and through configuration dialogs. |
Almost all features of Windows can be modified, though. One way of doing this is through a resource editor such as [[Resource hacker]]. Windows can also be skinned using a program such as [[WindowBlinds]]. Limited customization is possible by modifying the [[Windows registry]] and through configuration dialogs. |
||
Revision as of 12:44, 31 August 2010
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 which provides required functionality such as support for graphics hardware, pointing devices, and a keyboard, and are often written and created using a widget toolkit.[2]
Few window managers are designed with clear distinction between the windowing system and the window manager. Every graphical user interface which uses a windows metaphor has some form of window management; however, in practice, the elements of this functionality vary greatly.[3] The elements usually associated with window managers are those which 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 other programs what offers docks, task bars, program launchers, desktop icons, and wallpaper with own features.
X window managers
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, which is the responsibility of the X server.
Users of the X Window System have the ability to easily use many different window managers such as those included in GNOME as Metacity and KWinused in KDE Workspace, and many others. Since many window managers are modular, people can use others such as Compiz (a 3D compositing window manager), which replaces the windowmanager. Components of different window managers can even be mixed and matched; for example, the window decorations from KDE Workspace's 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 (put inside of) another window. Window managers under the X window system adopt applications from the root window and re-parent them to window decorations (for example, adding a title bar). Re-parenting can also be used to allow the contents of one window to be added to another; for example, a flash player application can be re-parented to a browser window, and can appear to the naked eye as supposedly being part of that program. Re-parenting window managers can therefore arrange one or more programs into the same window, and can easily combine tiling and stacking in various ways.
Microsoft Windows
This section needs expansion. You can help by adding to it. (December 2009) |
The Windows Explorer (explorer.exe) is not only a file manager, but also has many functions of a window manager, and is used by default in modern Windows systems[citation needed]. Almost all features of Windows can be modified, though. One way of doing this is through a resource editor such as Resource hacker. Windows can also be skinned using a program such as WindowBlinds. Limited customization is possible by modifying the Windows registry and through configuration dialogs.
The same window manager can also act as X window manager through Cygwin/X in multiwindow mode (and, possibly, other X window implementations).
Note that Microsoft and UNIX world use completely different terms to describe similar concepts. For example, there is no specific word for window manager functionality in Windows (shell sometimes used in this context, but its sense is fuzzy); probably, lacking such term, Microsoft avoids advertising of third-party window managers.
Types of window managers
Window managers are often divided into three classes, which describe how windows are drawn and updated.
Compositing window managers
Compositing window managers allow all windows to be created and drawn separately and then put together and displayed in various 2D and 3D environments. This allows for a great deal of variety in interface look and feel, and for the presence of advanced 2D and 3D visual effects.
Mac OS X was the first operating system to be packaged with a compositing window manager.[4][5]
Stacking window managers
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 exactly the same methodologies. Stacking window managers allow windows to overlap by drawing background windows first, which is referred to as painter's algorithm. Changes sometimes require all windows to 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 to be redrawn, since background windows may have bits of other windows painted over them effectively erasing the areas that are covered.
Tiling window manager
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.
Dynamic window manager
Dynamic window managers can dynamically switch between tiling or floating window layout. A variety of dynamic window managers for X are available.
Features and facilities of window managers
- Autohide
- An autohide facility enables menubars to disappear when the pointer is moved away from the edge of the screen.
- Borders
- A border is a window decoration component provided by some window managers, that appears around the active window. Some window managers may also display a border around background windows.
- Context Menu
- Some window managers provide a context menu that appears when an alternative click event is applied to a desktop component.
- Desktop Wallpaper
- Some window managers provide a desktop wallpaper facility that enables a background picture to be displayed in the root window.
- Focus Stealing
- Focus stealing is a facility provided by some window managers that allows an application that is not in focus to suddenly gain focus and steal user input intended for the previously focused application.
- Iconification
- An iconification facility enables running applications to be minimized to a desktop icon or taskpanel icon.
- Joined Windows
- Some window managers provide a joined windows facility that enables application window frames to be joined together.
- Keyboard Equivalents
- Some window managers provide keyboard equivalents that enables functionality provided by the mouse to be replicated by using a keyboard.
- Menubar
- A menubar provides the facility to launch programs via a menu and may contain additional facilities including a start button, a taskbar, and a system tray.
- Menu Panel
- A menu panel a component of some window managers that provides the facility to launch programs using a menu. A menu panel is similar to a menubar, but appears as a floating panel, rather than a horizontal or vertical bar.
- The menu panel may contain additional facilities including a start button, a task panel, and a system tray.
- Mouse focus
- The mouse focus model determines how the pointing device affects the input focus within the window manager. The focus model determine which component of the graphical user interface is currently selected to receive input as the pointer is moved around the screen.
- Mouse warping
- Mouse warping is a facility that centres the mouse pointer on the current application as it is made active.
- Multiple Desktops
- A window manager may provide a multiple desktops facility. This enables several root windows to be used, and a facility to switch between desktops. This prevents clutter of the root window, because applications can be run on different desktops.
- Pager
- Some window managers provide a pager tool that provides the facility to switch between multiple desktops. The pager may appear as an onscreen window or as a gadget in the taskbar or taskpanel.
- Plugins
- Some window managers have a modular construction, enabling plug-in modules to be used to provide features as required.
- Root Menu
- Some window managers provide a root menu, which appears when the root window or desktop background is touched.
- Shortcuts
- Some window managers provide a shortcut facility, which enables icons to be placed on the root window, which can be used to access specific programs or facilities.
- Tabbed Windows
- Some window managers provide a tabbed windows facility, that enables applications to be grouped together to share common frames.
- Task Switching
- The window manager may provide various task switching facilities, to enable selection of the currently focused application, including:
- Changing the mouse focus using a pointing device
- Keyboard task switching facilities (for example, by pressing Alt-Tab)
- Clicking on the task in a taskbar or taskpanel
- Taskbar
- Some window managers provide a taskbar which shows running applications. The taskbar may show all applications that are running including those that have been minimized, and may provide the facility to switch focus between them. The taskbar may be incorporated into a menubar on some window managers.
- Task Panel
- A task panel is similar to a taskbar, but appears as a floating panel, rather than a horizontal or vertical bar.
- Start Button
- A start button is a desktop widget that provides a menu of programs that can be launched. The start button is typically placed on a menubar at the bottom of the screen.
- System Tray
- A system tray is used to display icons for system and program features that have no desktop window. It contains mainly icons to indicate status information and notifications such as arrival of a new mail message. Some systems may also show a clock in the system tray.
- Title Bars
- A titlebar is a window decoration component provided by some window managers which appears at the top of each window. The titlebar is typically used to display the name of the application, or the name of the open document, and may provide title bar buttons for minimizing, maximizing, closing or rolling up of application windows.
- Title Bar Buttons
- Title bar buttons are included in the titlebar of some window managers, and provide the facility to minimize, maximize, rollup or close application windows. Some window managers may display the titlebar buttons in the taskbar or task panel, rather than in a titlebar.
- Virtual Desktop
- A virtual desktop (also called a scrolling desktop) is a facility provided by some window managers that enables the desktop to be larger than the actual screen
History
In the 1970s, the Xerox Alto became the first computer shipped with a working WIMP GUI. It used a stacking window manager which allowed overlapping windows.[6] While it is unclear if Microsoft Windows contains designs copied from Apple's 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.[7]
GEM 1.1 was a window manager which supported the desktop metaphor, and used stacking, allowing all windows to overlap. It was released in the early 1980s.[8] 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, GEM was forced to remove the stacking capabilities, making it a tiling window manager.[9]
Mac OS was one of the earliest commercially successful examples of a GUI which used a sort of stacking window management via QuickDraw. Currently Mac OS X uses a somewhat more advanced window manager which 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.[4]
During the mid 1980s, Amiga OS contained an early example of a stacking window manager. Instead of using a desktop metaphor, the Amiga instead used an interface metaphor centered around a workbench, representing directories as drawers rather than folders, and where utility programs were nicknamed tools. Therefore its window manager was entitled "Amiga Workbench".
The Workbench was powered by an intelligent engine 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 the desired parts of the screen that required to be refreshed. This feature was powered by internal Bit Blitter and Copper circuits of Amiga hardware and did not require the use of a compositing engine, and this increased the rendering speed. Intuition also anticipated the choices of the user by recognizing the position of the mouse pointer floating over other elements of the screen (title bars of windows, their close and resizing gadgets, whole icons), and thus it was capable of granting nearly a zero-wait state experience to the use of the Workbench window manager.
Noteworthy to mention is the fact that Workbench was the only window manager that eventually inspired an entire family of descendant and successors: Ambient in MorphOS, Zune/Wanderer in AROS, Workbench NG (New Generation in AmigaOS 4.0 and 4.1. Workbench 4.1 was enhanced by 2D vector interface powered by Cairo libraries, and presenting a modern Porter-Duff 3D based Compositing Engine.
In 1988, Presentation Manager became the default shell in OS/2, which before that point used a command line interface (CLI). OS/2 shared a common ancestry with Microsoft Windows, and was a joint project between Microsoft and IBM. After Microsoft and IBM split, OS/2 v3 was renamed Windows NT, and Presentation Manager was later dropped in favour of Microsoft's own windowing system and window manager.[10]