Skip to content
Search

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_TOOLBAR and _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_TYPE is not set, managed windows with WM_TRANSIENT_FOR set should be taken as this type.
Override-redirect windows that use WM_TRANSIENT_FOR but have no _NET_WM_WINDOW_TYPE should 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_TYPE nor WM_TRANSIENT_FOR set should be taken as this type.
Override-redirect windows without _NET_WM_WINDOW_TYPE should be considered this type, whether or not WM_TRANSIENT_FOR is set.

See also

Favorite site

author Zer0 sitemap