Extended Window Manager Hints
lastmod 2020-11-13created 2020-11-108 edits
Extended Window Manager Hints, a.k.a. NetWM or Net WM, is an X Window System standard for window managers. It defines various interactions between window managers, utilities, and applications that are part of an entire desktop environment. It builds on the functionality of the Inter-Client Communication Conventions Manual (ICCCM).
_NET_WM_WINDOW_TYPE
_NET_WM_WINDOW_TYPE, ATOM[]/32
This should be set by the client before mapping, to a list of atoms indicating the functional type of the window. This property should be used by the window manager in determining the decoration, stacking position, and other behavior of the window. The client should specify window types in order of preference (the first being most preferable) but should include at least one of the basic window type atoms from the list below. This is to allow for extension of the list of types while providing default behavior for window managers that do not recognize the extensions.
This hint should also be set for override-redirect windows so that compositing managers can apply consistent decorations to menus, tooltips, and so on.
Rationale: This hint is intended to replace the MOTIF hints. One of the objections to the MOTIF hints is that they are a purely visual description of the window decoration. By describing the function of the window, the Window Manager can apply consistent decoration and behavior to windows of the same type. Possible examples of behavior include keeping dock/panels on top or allowing pinnable menus / toolbars to only be hidden when another window has focus (NextStep style).
List of values
-
_NET_WM_WINDOW_TYPE_DESKTOP, ATOM -
_NET_WM_WINDOW_TYPE_DOCK, ATOM -
_NET_WM_WINDOW_TYPE_TOOLBAR, ATOM -
_NET_WM_WINDOW_TYPE_MENU, ATOM -
_NET_WM_WINDOW_TYPE_UTILITY, ATOM -
_NET_WM_WINDOW_TYPE_SPLASH, ATOM -
_NET_WM_WINDOW_TYPE_DIALOG, ATOM -
_NET_WM_WINDOW_TYPE_DROPDOWN_MENU, ATOM -
_NET_WM_WINDOW_TYPE_POPUP_MENU, ATOM -
_NET_WM_WINDOW_TYPE_TOOLTIP, ATOM -
_NET_WM_WINDOW_TYPE_NOTIFICATION, ATOM -
_NET_WM_WINDOW_TYPE_COMBO, ATOM -
_NET_WM_WINDOW_TYPE_DND, ATOM -
_NET_WM_WINDOW_TYPE_NORMAL, ATOM
Detailed description of values
-
_NET_WM_WINDOW_TYPE_DESKTOP - indicates a desktop feature. This can include a single window containing desktop icons with the same dimensions as the screen, allowing the desktop environment to have full control of the desktop, without the need for proxying root window clicks.
-
_NET_WM_WINDOW_TYPE_DOCK - indicates a dock or panel feature. Typically a Window Manager would keep such windows on top of all other windows.
-
_NET_WM_WINDOW_TYPE_TOOLBARand_NET_WM_WINDOW_TYPE_MENU - indicate toolbar and pinnable menu windows, respectively (i.e. toolbars and menus "torn off" from the main application). Windows of this type may set the WM_TRANSIENT_FOR hint indicating the main application window. Note that the _NET_WM_WINDOW_TYPE_MENU should be set on torn-off managed windows, where _NET_WM_WINDOW_TYPE_DROPDOWN_MENU and _NET_WM_WINDOW_TYPE_POPUP_MENU are typically used on override-redirect windows.
-
_NET_WM_WINDOW_TYPE_UTILITY - indicates a small persistent utility window, such as a palette or toolbox. It is distinct from type TOOLBAR because it does not correspond to a toolbar torn off from the main application. It's distinct from type DIALOG because it isn't a transient dialog, the user will probably keep it open while they're working. Windows of this type may set the WM_TRANSIENT_FOR hint indicating the main application window.
-
_NET_WM_WINDOW_TYPE_SPLASH - indicates that the window is a splash screen displayed as an application is starting up.
-
_NET_WM_WINDOW_TYPE_DIALOG - Indicates that this is a dialog window.
- If
_NET_WM_WINDOW_TYPEis not set, managed windows withWM_TRANSIENT_FORset should be taken as this type. - Override-redirect windows that use
WM_TRANSIENT_FORbut have no_NET_WM_WINDOW_TYPEshould be considered_NET_WM_WINDOW_TYPE_NORMAL.
-
_NET_WM_WINDOW_TYPE_DROPDOWN_MENU - indicates that the window in question is a dropdown menu, ie., the kind of menu that typically appears when the user clicks on a menubar, as opposed to a popup menu which typically appears when the user right-clicks on an object. This property is typically used on override-redirect windows.
-
_NET_WM_WINDOW_TYPE_POPUP_MENU - indicates that the window in question is a popup menu, ie., the kind of menu that typically appears when the user right clicks on an object, as opposed to a dropdown menu which typically appears when the user clicks on a menubar. This property is typically used on override-redirect windows.
-
_NET_WM_WINDOW_TYPE_TOOLTIP - indicates that the window in question is a tooltip, ie., a short piece of explanatory text that typically appear after the mouse cursor hovers over an object for a while. This property is typically used on override-redirect windows.
-
_NET_WM_WINDOW_TYPE_NOTIFICATION - indicates a notification. An example of a notification would be a bubble appearing with informative text such as "Your laptop is running out of power" etc. This property is typically used on override-redirect windows.
-
_NET_WM_WINDOW_TYPE_COMBO - should be used on the windows that are popped up by combo boxes. An example is a window that appears below a text field with a list of suggested completions. This property is typically used on override-redirect windows.
-
_NET_WM_WINDOW_TYPE_DND - indicates that the window is being dragged. Clients should set this hint when the window in question contains a representation of an object being dragged from one place to another. An example would be a window containing an icon that is being dragged from one file manager window to another. This property is typically used on override-redirect windows.
-
_NET_WM_WINDOW_TYPE_NORMAL - Indicates that this is a normal, top-level window, either managed or override-redirect.
- Managed windows with neither
_NET_WM_WINDOW_TYPEnorWM_TRANSIENT_FORset should be taken as this type. - Override-redirect windows without
_NET_WM_WINDOW_TYPEshould be considered this type, whether or notWM_TRANSIENT_FORis set.
See also
- x11
- xorg
- X Window System
- XMonad.Hooks.EwmhDesktops
- Inter-Client Communication Conventions Manual (ICCCM)