Jump to content

Extended Window Manager Hints

From Wikipedia, the free encyclopedia
(Redirected from EWMH)

Extended Window Manager Hints, a.k.a. NetWM,[1] is an X Window System standard for the communication between window managers and applications. It builds on the functionality of the Inter-Client Communication Conventions Manual (ICCCM).

These standards formulate protocols for the mediation of access to shared X resources, like the screen 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. 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[edit]

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

Root window properties[edit]

The WM must update a set of properties on the root window:

lists all the EWMH protocols supported by this WM.
lists all application windows managed by this WM.
indicates the number of virtual desktops.
defines the common size of all desktops.
defines the top left corner of each desktop.
gives the index of the current desktop.
lists the names of all virtual desktops.
gives the currently active window.
contains a geometry for each desktop.
gives the window of the active WM.
if the WM supports virtual root windows.
shows the layout of the active pager.
is 1 for "showing the desktop" mode.

Client messages[edit]

An application may send client messages to a window manager:

to change the state of an application window.
to activate an application window.
toggles display of application windows.
to close an application window.
to interactively resize an application window.
to immediately resize an application window.
consults frame border dimensions.
defines the monitors for a fullscreen window.

If the WM supports window stacking:

asks to change the stacking order for a window.

If the WM supports virtual desktops:

changes the current desktop.
changes the number of desktops.

A WM may choose to ignore these messages:

changes the dimension of all desktops.
changes the viewport for the current desktop.

Window properties[edit]

The EWMH defines these application window properties:

the title of the window.
the window title as shown by the WM.
the title of the icon.
the icon title as shown by the WM.
the desktop the window is in.
the functional type of the window.
the current window state.
a list of supported user operations.
if the window wishes to reserve space at the edge.
reserved space details at the screen edge.
the geometry of a possible icon.
an array of possible icons for the client.
the process ID of the client owning this window.
whether a pager provides icons.
time of last user activity in this window.
the window which shows user activity.
the left, right, top and bottom frame sizes.
which window regions are fully opaque.
requests that the window is uncomposited.

Window states[edit]

The ICCCM defines only three distinct states a window can be in:

  1. Withdrawn,
  2. Normal,
  3. 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[edit]

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

List of window managers that support Extended Window Manager Hints[edit]

Tiling and dynamic window managers[edit]

Stacking window managers[edit]

Other window managers[edit]

Notes and references[edit]

  1. ^ "Net WM - Blackbox". Archived from the original on 2007-10-01. Retrieved 2007-09-29.
  2. ^ "polachok/echinus: README - 3. About panels and pagers". GitHub. Retrieved 2022-08-19.
  3. ^ "i3 _NET_SUPPORTED". GitHub. Retrieved 2021-02-14.
  4. ^ "Fixed _NET_SUPPORTING_WM_CHECK and _NET_SUPPORTED property setup". GitHub. Retrieved 2022-08-19.
  5. ^ "What is subtle?". Retrieved 2022-08-19.
  6. ^ "BurntSushi/wingo: COMPLIANCE - EWMH". GitHub. Retrieved 2022-08-19.
  7. ^ "Blackbox COMPLIANCE". GitHub. Retrieved 2021-02-15.
  8. ^ "ctwm 4.0.0 changes".
  9. ^ "Fluxbox EWMH Support". Archived from the original on 2009-08-19. Retrieved 2009-09-09.
  10. ^ "Extended Window Manager Hints Support For FVWM".
  11. ^ "FVWM - Features".
  12. ^ "IceWM COMPLIANCE". GitHub. Retrieved 2020-12-28.
  13. ^ "joewing.net | JWM EWMH Support". Retrieved 2021-02-15.
  14. ^ "Metacity COMPLIANCE". Retrieved 2021-02-15.
  15. ^ "Openbox COMPLIANCE". GitHub. Retrieved 2021-02-15.
  16. ^ xfwm4 standards

External links[edit]