X window manager
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 that provides required functionality—support for graphics hardware, pointing devices, and a keyboard, and are often written and created using a widget toolkit.
Few window managers are designed with a clear distinction between the windowing system and the window manager. Every graphical user interface based on a windows metaphor has some form of window management. In practice, the elements of this functionality vary greatly.[2] Elements usually associated with window managers 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 various utilities and features: e.g. docks, task bars, program launchers, desktop icons, and wallpaper.
Contents
[hide]X window managers[edit]
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 – that is the responsibility of the display server.
Users of the X Window System have the ability to easily use many different window managers – Metacity, used in GNOME, and KWin, used in KDE Plasma Workspaces, and many others. Since many window managers are modular, people can use others, such as Compiz (a 3D compositing window manager), which replaces the window manager. Sawfish and awesome on the other hand are extensible window managers offering exacting window control. Components of different window managers can even be mixed and matched; for example, the window decorations from 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 (i.e., 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 add the contents of one window to another. For example, a flash player application can be re-parented to a browser window, and can appear to the user 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[edit]
This section requires expansion.(August 2011) |
Microsoft Windows has provided an integrated stacking window manager since Windows 2.0; Windows Vista introduced the compositing Desktop Window Manager(dwm.exe) as an optional hardware-accelerated alternative. In Windows, the role of the window manager is tightly coupled with the kernel's graphical subsystems and is largely non-replaceable, although third-party utilities can be used to simulate a Tiling window manager on top of such systems.
Windows Explorer (explorer.exe) is used by default in modern Windows systems to provide a panel and file manager, along with many functions of a window manager; aspects of Windows can be modified through the provided configuration utilities, modifying the Windows registry or with 3rd party tools, such as WindowBlinds or Resource Hacker.
The Windows window manager can also act as an X window manager through Cygwin/X in multiwindow mode (and, possibly, other X window implementations).
Note that Microsoft and X Window System use different terms to describe similar concepts. For example, there is no specific word for window manager functionality in Windows (shell is sometimes used in this context, but its sense is fuzzy).
Types of window managers[edit]
Window managers are often divided into three or more classes, which describe how windows are drawn and updated.
Compositing window managers[edit]
Compositing window managers let all windows be created and drawn separately and then put together and displayed in various 2D and 3D environments. The most advanced compositing window managers allow for a great deal of variety in interface look and feel, and for the presence of advanced 2D and 3D visual effects.
Stacking window managers[edit]
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 the same methods. Stacking window managers allow windows to overlap by drawing background windows first, which is referred to as painter's algorithm. Changes sometimes require that all windows 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 be redrawn, since background windows may have bits of other windows painted over them, effectively erasing the areas that are covered.
Tiling window manager[edit]
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[edit]
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[edit]
- 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 displays a background picture in the root window.
- Focus Stealing
- Focus stealing is a facility some window managers provide. It allows an application not in focus to suddenly gain focus and steal user input intended for the previously focused application.
- Iconification
- An iconification facility lets users minimize running applications to a desktop icon or taskpanel icon.
- Joined Windows
- Some window managers provide a joined windows facility that lets user join application window frames together.
- Keyboard Equivalents
- Some window managers provide keyboard equivalents that enables the keyboard to replicate mouse functionality.
- 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 pointer on the current application as it is made active.
- Multiple Desktops
- A window manager may provide a multiple desktops facility. This enables switching between several root window desktops. This prevents clutter of the root window, because applications can run on differentdesktops.
- 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 that enables plug-in modules 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 that lets users place icons on the root window that access specific programs or facilities.
- Tabbed Windows
- Some window managers provide a tabbed windows facility that groups applications together in common frames.
- Task Switching
- The window manager may provide various task switching facilities that let the user change 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 that 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.
- Notification Area
- A Notification Area 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 Notification Area.
- Title Bars
- A titlebar is a window decoration component some window managers provide 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 titlebarbuttons in the taskbar or task panel, rather than in a titlebar.
- Virtual Desktop
- A virtual desktop (also called a scrolling desktop) is a facility some window managers provided that lets the desktop be larger than the actual screen
History[edit]
In the 1970s, the Xerox Alto became the first computer shipped with a working WIMP GUI. It used a stacking window manager that allowed overlapping windows.[3] 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.[4]
GEM 1.1 was a window manager that supported the desktop metaphor, and used stacking, allowing all windows to overlap. It was released in the early 1980s.[5] 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.[6]
Mac OS was one of the earliest commercially successful examples of a GUI that used a sort of stacking window management via QuickDraw. Currently OS X uses a somewhat more advanced window manager that 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.[7]
During the mid-1980s, Amiga OS contained an early example of a compositing window manager 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 parts of the screen that required refresh. Additionally, Intuition supported compositing. 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.
Intuition also anticipated the choices of the user by recognizing the position of the 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, in its first version, only used a command line interface (CLI). IBM and Microsoft designed OS/2 as a successor to DOS and Windows for DOS. After the success of the Windows 3.10, however, Microsoft abandoned the project in favor of Windows. After that, the Microsoft project for a future OS/2 version 3 became Windows NT, and IBM made a complete redesign of the shell of OS/2, substituting the Presentation Manager of OS/2 1.x for the object-oriented Workplace Shell that made its debut in the OS/2 2.0.[8]
See also[edit]
References[edit]
출처 - http://en.wikipedia.org/wiki/Window_manager
An X window manager is a window manager which runs on top of the X Window System, a windowing system mainly used on Unix-like systems.
Unlike the Mac OS (Apple Macintosh) and Microsoft Windows platforms (excepting Microsoft Windows explorer.exe shell replacements) which have historically provided a vendor-controlled, fixed set of ways to control how windows and panes display on a screen, and how the user may interact with them, window management for the X Window System was deliberately kept separate from the software providing the graphical display. The user can choose between various third-party window managers, which differ from one another in several ways, including:
- customizability of appearance and functionality:
- textual menus used to start programs and/or change options
- docks and other graphical ways to start programs
- multiple desktops and virtual desktops (desktops larger than the physical monitor size), and pagers[1] to switch between them
- consumption of memory and other system resources
- degree of integration with a desktop environment, which provides a more complete interface to the operating system, and provides a range of integrated utilities and applications.
Contents
[hide]How X window managers work[edit]
When a window manager is running, some kinds of interaction between the X server and its clients are redirected through the window manager. In particular, whenever an attempt to show a new window is made, this request is redirected to the window manager, which decides the initial position of the window. Additionally, most modern window managers are reparenting, which usually leads to a banner being placed at the top of the window and a decorative frame being drawn around the window. These two elements are controlled by the window manager rather than the program. Therefore, when the user clicks or drags these elements, it is the window manager that takes the appropriate actions (such as moving or resizing the window).
Window managers are also responsible for icons. Indeed, icons do not exist at the X Window System core protocol level. When the user requests a window to be iconified, the window manager unmaps it (makes it non-visible) and takes the appropriate actions to show an icon in its place. Most modern window managers do not literally show icons to represent iconified windows anymore. Often, an auxiliary toolbar program will allow access to iconified windows.
While the main aim of a window manager is to manage the windows, many window managers have additional features such as handling mouse clicks in the root window, presenting panes and other visual elements, handling some keystrokes (e.g., Alt-F4 may close a window), deciding which application to run at start-up, etc.
Standardized protocols exist to allow normal clients to communicate with the window manager. The original one is Inter-Client Communication Conventions Manual (ICCCM) but this has been superseded by theExtended Window Manager Hints (EWMH).
Types of window managers[edit]
Stacking window managers[edit]
A stacking window manager renders the windows one-by-one onto the screen at specific co-ordinates. If one window's area overlaps another, then the window "on top" overwrites part of the other's visible appearance. This results in the appearance familiar to many users in which windows act a little bit like pieces of paper on a desktop, which can be moved around and allowed to overlap.
In contrast to compositing window managers (see below), the lack of separate off-screen buffers can mean increased efficiency, but effects such as translucency are not possible.
Stacking window managers include Amiwm, Blackbox, Enlightenment, evilwm, Fluxbox, FVWM, IceWM, MWM, Openbox and Window Maker.
Tiling window managers[edit]
A tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames (hence the name tiling), as opposed to the traditional approach of coordinate-based stacking of objects (windows) that tries to emulate the desk paradigm.
Tiling window managers include awesome, dwm, ion, larswm, ratpoison, Stumpwm, wmii, i3, xmonad, and XWEM.
Compositing window managers[edit]
A compositing window manager may appear to the user similar to a stacking window manager. However, the individual windows are first rendered in individual buffers, and then their images are composited onto the screen buffer; this two-step process means that visual effects (such as shadows, translucency) can be applied. It also means that compositing window managers are inherently more resource-hungry than an equivalently-powerful stacking window manager. For this reason, some window managers for X do not support compositing by default, such as LXDE.[1]
Historically, the Amiga in 1985, OSX in 2001 (which in many ways is[citation needed] a window manager for X), Java Looking Glass in 2003, and the Windows Longhorn demo in 2003 (delayed until Vista in 2007) preceded compositing efforts under X11. Compositing window managers for X include:
- GNOME's Mutter nee Metacity (first dev-branch compositor in 2.7[citation needed] or 2.8 [2] of 2004 [3]—original stable-branch compositor since 2.14 in 2005 [4] or 2006 [5]—current compositor architecture since 2.22 [6] in 2008—Metacity+Clutter begat Mutter in 2011),
- Xfce's Xfwm (since 4.2 of 2004[citation needed] or 2005 [7]),
- Unity's Compiz (since 2005—was forked as Beryl in 2006 but the projects re-merged in 2007), and
- KDE's KWin (since 4.0 of 2008).
Virtual window managers[edit]
A virtual window manager is a window manager that uses virtual screens, whose resolution can be higher than the resolution of one's monitor/display adapter thus resembling a two dimensional virtual desktopwith its viewport. This environment is very useful when one wishes to have a large number of windows open at the same time. A number of virtual window managers have been made, including FVWM, Tvtwm,HaZe and others.
Window managers that are extensible[edit]
Some window managers are extensible, or programmable, by user scripts.
In these window managers, users can define new actions or override the default, or reactions to various events, like window size and position changes, window creation and deletion, key and mouse input, timer, etc. They often provide on-the-fly code execution, too.
Some examples of such window managers and the used languages are:
X window managers[edit]
- 2wm
- 3dwm
- 4Dwm
- 5Dwm (derived from mwm, true SGI look and feel)
- 9wm (clone of the original windowing system of Plan 9)
- aegis
- aewm
- aewm++
- AfterStep
- ahwm
- alloywm
- alptwm
- amaterus
- amiwm (Amiga workbench unix clone)
- anarchy
- antiwm
- asclassic
- awesome
- awm
- badwm
- Beryl
- Blackbox (minimalist)
- bluetile
- blwm
- clfswm
- Compiz
- CTWM
- cwm
- dwm
- evggww (Egg Window Manager - Qt based WM)
- evilwm
- Enlightenment
- EvilPoison (a fork of evilwm with Ratpoison-like keybindings)
- Fluxbox (lightweight, based on Blackbox)
- FVWM (a virtual window manager, derived from twm)
- FVWM95
- hackedbox
- HaZe
- i3
- IceWM
- Ion (a tiling tabbed window manager designed with keyboard users in mind)
- JWM (Joe's Window Manager)
- Kahakai
- KWin (originally called KWM, default for KDE)
- luminocity (experimentation in compositing)
- LWM
- Matchbox
- Mutter (GNOME Shell) (the current default for the GNOME desktop environment)
- Metacity (the previous default for the GNOME desktop environment)
- mwm (Motif Window Manager)
- olwm (OPEN LOOK window managers)
- olvwm (olwm with virtual desktops)
- Openbox (default for the LXDE desktop environment)
- Orion (a nested (tiled or floating) window manager written in Scheme and scsh)
- Oroborus
- PekWM
- PLWM
- PWM
- Qvwm (Windows 95/98 look-alike)
- ratpoison
- Sawfish (a past default for GNOME, originally called Sawmill)
- Scwm (the Scheme constraints window manager)
- SithWM evilwm-based, virtual window manager (German page)
- Stumpwm (a tiling window manager written in Lisp)
- swm (the original virtual desktop implementation)
- Toy'd (a portable window manager for MS-Windows & UNIX / Linux platforms)
- TrsWM
- touchegg Window Manager (Qt based WM for multi-touch gestures )
- twm (default for the X Window System since version X11R4)
- µwm
- Ultrix Window Manager
- vtwm
- Waimea
- WindowLab
- Window Maker
- Wingo
- wm2
- wmii
- wmx
- Xfwm4 (a window manager for the Xfce desktop environment)
- xmonad
- XPwm (for XPde, Windows XP Look alike)
- xwm
- ZappWM, (based in Rox-filer)
See also[edit]
- Comparison of X window managers
- Re-parenting window manager for a popular implementation technique
- X Window System protocols and architecture for context
- Windowing system
- Wmctrl - a command line utility used to control windows in EWMH and NetWM compatible window managers
- xdotool - another command line utility used to control windows
References[edit]
External links[edit]
- Window Managers for X by Matt Chapman
- Software List:Window Managers - list of window managers with summaries
- The Comprehensive List of Window Managers for Unix
출처 - http://en.wikipedia.org/wiki/X_window_manager