Extended Window Manager Hints


Table of Contents
Introduction
Root Window Properties (+Related Messages)
Other Root Window Messages
Application Window Properties
Window Manager Protocols
Implementation notes

Introduction

What is this spec?

This spec defines interactions between window managers, applications and the utilities that form part of a desktop environment. It builds on the ICCCM, which defines wm/client interactions at a lower level. It was born out of a need to replace the original Gnome WM specification, although this specification has been designed to be independent of any one desktop environment.

Language used in this specification

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

The key words "Window Manager" refer to a window manager which is adopting this specification. "Pager" refers to desktop utility applications, including pagers and taskbars. "Application" refers to other clients. "Clients" refers to Pagers + Applications ie. all X clients, except for the Window Manager.

Changes since 1.9d

  • Added _NET_VIRTUAL_ROOTS

  • Added note about ICCCM compliant window moves.

  • Added _NET_WM_HANDLED_ICONS

  • Added _NET_SUPPORTING_WM_CHECK

  • Removed degrees of activation

Changes since 1.9c

  • Removed packaging of hints into 2 X properties. Jim Gettys points out that the performance gains of fewer round trips can be better achieved using Xlib routines.

  • Clarified that _NET_DESKTOP_VIEWPORT is in pixels

  • _NET_DESKTOP_VIEWPORT is now an array, one for each desktop, to allow for different active viewports on different desktops

  • _NET_WM_STRUT now only applies on desktops on which the client is visible

  • Introduced RFC 2119 language, and attempted to clarify the roles of the Window Manager, Pagers and Applications

  • Added _NET_WM_NAME

  • _NET_DESKTOP_NAMES now in UTF8

  • Desktops now start from 0

  • Added _NET_WM_PID

  • Added _NET_WM_PING protocol

  • Added _NET_WM_STATE_SKIP_TASKBAR

Changes since 1.9b

  • Removed _NET_NUMBER_OF_DESKTOPS client message, as it overlaps unnecessarily with _NET_{INSERT/DELETE}_DESKTOP.

  • Replaced _NET_WM_LAYER and _NET_WM_HINTS with _NET_WM_WINDOW_TYPE functional hint.

  • Changed _NET_WM_STATE to a list of atoms, for extensibility.

  • Expanded description of _NET_WORKAREA and _NET_WM_STRUT.

  • Removed _NET_WM_SIZEMOVE_NOTIFY protocol.

  • Added degrees of activation to _NET_ACTIVE_WINDOW client message

  • Added _NET_WM_ICON

  • My comments are in [[ ]]. Comments from Marko's draft are in [[MM: ]]