NetWM
   HOME

TheInfoList



OR:

Extended Window Manager Hints, a.k.a. NetWM, is an
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
standard for the communication between
window managers A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They work in conjunction ...
and
applications Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
. It builds on the functionality of the
Inter-Client Communication Conventions Manual In computing, the Inter-Client Communication Conventions Manual (ICCCM or I39L short for "I", 39 letters and "L")protocols Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technology ...
for the mediation of access to shared X resources, like the
screen Screen or Screens may refer to: Arts * Screen printing (also called ''silkscreening''), a method of printing * Big screen, a nickname associated with the motion picture industry * Split screen (filmmaking), a film composition paradigm in which mul ...
and the input focus. Applications request access, while the window manager grants or denies it. Communication occurs via X properties and client messages. The EWMH is a comprehensive set of protocols to implement a
desktop environment In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphica ...
. It defines both required and optional protocols. The window manager may choose to implement virtual desktops or a layered stacking order, but if it does, then the EWMH defines how this is communicated.


Protocol overview

All EWMH protocol identifiers start with the five letter prefix _NET_.


Root window properties

The WM must update a set of properties on the root window: ; _NET_SUPPORTED : lists all the EWMH protocols supported by this WM. ; _NET_CLIENT_LIST : lists all application windows managed by this WM. ; _NET_NUMBER_OF_DESKTOPS : indicates the number of virtual desktops. ; _NET_DESKTOP_GEOMETRY : defines the common size of all desktops. ; _NET_DESKTOP_VIEWPORT : defines the top left corner of each desktop. ; _NET_CURRENT_DESKTOP : gives the index of the current desktop. ; _NET_DESKTOP_NAMES : lists the names of all virtual desktops. ; _NET_ACTIVE_WINDOW : gives the currently active window. ; _NET_WORKAREA : contains a geometry for each desktop. ; _NET_SUPPORTING_WM_CHECK : gives the window of the active WM. ; _NET_VIRTUAL_ROOTS : if the WM supports virtual root windows. ; _NET_DESKTOP_LAYOUT : shows the layout of the active pager. ; _NET_SHOWING_DESKTOP : is 1 for "showing the desktop" mode.


Client messages

An application may send client messages to a window manager: ; _NET_WM_STATE : to change the state of an application window. ; _NET_ACTIVE_WINDOW : to activate an application window. ; _NET_SHOWING_DESKTOP : toggles display of application windows. ; _NET_CLOSE_WINDOW : to close an application window. ; _NET_WM_MOVERESIZE : to interactively resize an application window. ; _NET_MOVERESIZE_WINDOW : to immediately resize an application window. ; _NET_REQUEST_FRAME_EXTENTS : consults frame border dimensions. ; _NET_WM_FULLSCREEN_MONITORS : defines the monitors for a fullscreen window. If the WM supports window stacking: ; _NET_RESTACK_WINDOW : asks to change the stacking order for a window. If the WM supports virtual desktops: ; _NET_CURRENT_DESKTOP : changes the current desktop. ; _NET_NUMBER_OF_DESKTOPS : changes the number of desktops. A WM may choose to ignore these messages: ; _NET_DESKTOP_GEOMETRY : changes the dimension of all desktops. ; _NET_DESKTOP_VIEWPORT : changes the viewport for the current desktop.


Window properties

The EWMH defines these application window properties: ; _NET_WM_NAME : the title of the window. ; _NET_WM_VISIBLE_NAME : the window title as shown by the WM. ; _NET_WM_ICON_NAME : the title of the icon. ; _NET_WM_VISIBLE_ICON_NAME : the icon title as shown by the WM. ; _NET_WM_DESKTOP : the desktop the window is in. ; _NET_WM_WINDOW_TYPE : the functional type of the window. ; _NET_WM_STATE : the current window state. ; _NET_WM_ALLOWED_ACTIONS : a list of supported user operations. ; _NET_WM_STRUT : if the window wishes to reserve space at the edge. ; _NET_WM_STRUT_PARTIAL : reserved space details at the screen edge. ; _NET_WM_ICON_GEOMETRY : the geometry of a possible icon. ; _NET_WM_ICON : an array of possible icons for the client. ; _NET_WM_PID : the process ID of the client owning this window. ; _NET_WM_HANDLED_ICONS : whether a pager provides icons. ; _NET_WM_USER_TIME : time of last user activity in this window. ; _NET_WM_USER_TIME_WINDOW : the window which shows user activity. ; _NET_FRAME_EXTENTS : the left, right, top and bottom frame sizes. ; _NET_WM_OPAQUE_REGION : which window regions are fully opaque. ; _NET_WM_BYPASS_COMPOSITOR : requests that the window is uncomposited.


Window states

The ICCCM defines only three distinct states a window can be in: # Withdrawn, # Normal, # Iconic. In addition it supports an Urgent flag to request user attention. The EWMH defines thirteen window state flags: * Above: show the window above others, * Below: show the window below others, * DemandsAttention: same as the urgent flag, * Focused: the window has input focus, * Fullscreen: show the window fullscreen, * Hidden: the window is unmapped, * MaximizedHorizontal: the window is stretched horizontally, * MaximizedVertical: the window is stretched vertically, * Modal: the window is a modal popup, * Shaded: the window is rolled up, * SkipPager: the window should not be shown on a pager, * SkipTaskbar: the window should be ignored by a taskbar, * Sticky: the window should be shown on all virtual desktops.


Additional protocols

; _NET_WM_PING : a WM can use this to test if a client is alive. ; _NET_WM_SYNC_REQUEST : for synchronizing repaints when resizing. ; _NET_WM_FULL_PLACEMENT : the WM will handle any window placement.


List of window managers that support Extended Window Manager Hints


Tiling and dynamic window managers

* aewm * awesome * bspwm * echinus * goomwwm * herbstluftwm * i3 * LeftWM * ''Notion'' *
Qtile In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach (used by stacking window managers) of coordinate-based stacking of overlap ...
* spectrwm * subtle * Wingo *
wmii In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach (used by stacking window managers) of coordinate-based stacking of overla ...
*
xmonad xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell. Window manager Begun in March 2007, version 0.1 was announced in April 2007 as 500 lines of Haskell. ...
(needs to be turned on in the config)


Stacking window managers

*
Blackbox In Unix computing, Blackbox is a free and open-source stacking window manager for the X Window System. Blackbox has specific design goals, and some functionality is provided only through other applications. One example is the bbkeys hotkey ap ...
*
Compiz Compiz () is a compositing window manager for the X Window System, using 3D graphics hardware to create fast compositing desktop effects for window management. Effects, such as a minimization animation or a cube workspace, are implemented as lo ...
*
CTWM In Unix computing, CTWM (Claude's Tab Window Manager) is a stacking window manager for the X Window System in the twm family of window managers. It was created in 1992 by Claude Lecommandeur from the source code for twm, which he extended to all ...
(as of 4.0.0) * edewm *
Fluxbox Fluxbox is a stacking window manager for the X Window System, which started as a fork of Blackbox 0.61.1 in 2001, with the same aim to be lightweight. Its user interface has only a taskbar, a pop-up menu accessible by right-clicking on the desk ...
*
FVWM The F Virtual Window Manager is a virtual window manager for the X Window System. Originally a twm derivative, FVWM has evolved into a powerful and highly configurable environment for Unix-like systems. History In 1993, during his work analyzin ...
(via a plugin prior to v2.4 and native support from v2.5) *
IceWM IceWM is a stacking window manager for the X Window System, originally written by Marko Maček. It was written from scratch in C++ and is released under the terms of the GNU Lesser General Public License. It is customizable, relatively lightw ...
*
JWM JWM (Joe's Window Manager) is a lightweight stacking window manager for the X Window System written by Joe Wingbermuehle. JWM is written in C and uses only Xlib at a minimum. Configuration is done by editing an XML file; no graphical configu ...
*
KWin KWin is a window manager for the X Window System and a Wayland compositor. It is released as a part of KDE Plasma 5, for which it is the default window manager. KWin can also be used on its own or with other desktop environments. KWin can be c ...
*
Metacity Metacity was the default window manager used by the GNOME 2 desktop environment until it was replaced by Mutter in GNOME 3. It is still used by GNOME Flashback, a session for GNOME 3 that provides a similar user experience to the Gnome 2.x serie ...
* Marco * Openbox


Other window managers

*
Enlightenment Enlightenment or enlighten may refer to: Age of Enlightenment * Age of Enlightenment, period in Western intellectual history from the late 17th to late 18th century, centered in France but also encompassing (alphabetically by country or culture): ...
(E16 and E17) * evilwm * interfacewm *
matchbox Phillumeny (also known as phillumenism) is the hobby of collecting different match-related items: matchboxes, matchbox labels, matchbooks, matchcovers, matchsafes, etc. Matchbox A matchbox is a box made of cardboard or thin wood and designed ...
*
Sawfish Sawfish, also known as carpenter sharks, are a family of rays characterized by a long, narrow, flattened rostrum, or nose extension, lined with sharp transverse teeth, arranged in a way that resembles a saw. They are among the largest fish wi ...
(not completely) * wmfs * Xfwmxfwm4 standards
/ref>


Notes and references


External links

*
The Window Manager Specification Project
at
freedesktop.org freedesktop.org (fd.o) is a project to work on interoperability and shared base technology for Free software, free-software desktop environments for the X Window System (X11) and Wayland (display server protocol), Wayland on Linux and other Uni ...

Extended Window Manager Hints Support For FVWM
{{XWinSys Freedesktop.org X Window System