4628b35234
We have lots of work to do! svn path=/trunk/kdebase/kwin/; revision=194045
190 lines
8.7 KiB
Text
190 lines
8.7 KiB
Text
W A R N I N G:
|
|
--------------
|
|
This document is a work in progress and is in no way complete or accurate!
|
|
Its current purpose is in aiding the KWin NetWM audit for a future KWin release.
|
|
|
|
NetWM Compliance Document:
|
|
==========================
|
|
|
|
Listed below are all the NetWM (or EWM) hints decided upon on freedesktop.org
|
|
(as of version 1.3draft, Nov 27, 2002) and KWin's current level of
|
|
compliance with the spec. Some parts also involve the pager and clients which
|
|
this document will cater for as well where applicable.
|
|
|
|
If you modify the level of NetWM compliance (via modification of kwin/*,
|
|
kdecore/netwm.* or kdecore/kwin.* etc.), or notice any new hints that
|
|
were added after version 1.2, please modify this document appropriately.
|
|
Properties are ordered in the table in the order they are found in the
|
|
specification. To list any important notes regarding a property, just
|
|
add them as follows:
|
|
|
|
_NET_NUMBER_OF_DESKTOPS root window property done
|
|
+----------------------------------------------------------------+
|
|
| This property SHOULD be updated by the Window Manager to |
|
|
| indicate the number of virtual desktops. KWin DOES update this |
|
|
| property when the pager changes the number of desktops. |
|
|
+----------------------------------------------------------------+
|
|
|
|
If you have any questions regarding the specification, feel free to ask on the KWin
|
|
mailing list <kwin@kde.org>, or on the Window Manager Spec list <wm-spec-list@gnome.org>.
|
|
-- Karol <kszwed@kde.org>
|
|
|
|
|
|
Property Name Type Compliance
|
|
==========================================================================
|
|
|
|
Root Window Properties (and Related Messages):
|
|
|
|
_NET_SUPPORTED root window property COMPLETE
|
|
+----------------------------------------------------------------+
|
|
| Please add all other supported _NET properties here |
|
|
| after they are implemented. This property is complete in the |
|
|
| sence that all implemented properties are listed here. |
|
|
+----------------------------------------------------------------+
|
|
_NET_CLIENT_LIST root window property PARTIAL
|
|
+----------------------------------------------------------------+
|
|
| With xprop it seems only one WinID is stored, whereas an array |
|
|
| of all managed windows should be stored instead! |
|
|
+----------------------------------------------------------------+
|
|
_NET_CLIENT_LIST_STACKING root window property PARTIAL
|
|
+----------------------------------------------------------------+
|
|
| With xprop it seems only one WinID is stored, whereas an array |
|
|
| of all managed windows should be stored instead! |
|
|
+----------------------------------------------------------------+
|
|
_NET_NUMBER_OF_DESKTOPS root window property + message PARTIAL
|
|
+----------------------------------------------------------------+
|
|
| _NET_VIRTUAL_ROOTS MUST be set to the new number of desktop |
|
|
| virtual root window IDs. Currently this property is NOT set, |
|
|
| but a WM SHOULD set this property and respond to the message. |
|
|
| We have NETRootInfo::setVirtualRoots() but we don't use it!! |
|
|
+----------------------------------------------------------------+
|
|
_NET_DESKTOP_GEOMETRY root window property + message NIL
|
|
+----------------------------------------------------------------+
|
|
| Neither the message or property are implemented. |
|
|
| The WM SHOULD implement the property and respond to the |
|
|
| message, so not implementing this isn't violating the spec. |
|
|
| We have NETRootInfo::setDesktopGeometry() but we don't use it! |
|
|
+----------------------------------------------------------------+
|
|
_NET_DESKTOP_VIEWPORT root window property + message COMPLETE
|
|
_NET_CURRENT_DESKTOP root window property + message COMPLETE
|
|
_NET_DESKTOP_NAMES root window property COMPLETE
|
|
_NET_ACTIVE_WINDOW root window property + message COMPLETE
|
|
_NET_WORKAREA root window property COMPLETE (seems buggy)
|
|
+----------------------------------------------------------------+
|
|
| Work Area takes into account the _NET_WM_STRUT property set on |
|
|
| client windows. I had a problem where _NET_NUMBER_OF_DESKTOPS |
|
|
| was 3, but _NET_WORKAREA had only two geometries set. |
|
|
| I need to investigate this -- Karol |
|
|
+----------------------------------------------------------------+
|
|
_NET_SUPPORTING_WM_CHECK root window property COMPLETE
|
|
_NET_VIRTUAL_ROOTS root window property NIL
|
|
+----------------------------------------------------------------+
|
|
| This property is currently NOT set. |
|
|
| We have NETRootInfo::setVirtualRoots() but we don't use it!! |
|
|
+----------------------------------------------------------------+
|
|
_NET_DESKTOP_LAYOUT (pager) root window property NIL
|
|
_NET_SHOWING_DESKTOP root window property + message NIL
|
|
|
|
Other Root Window Messages:
|
|
|
|
_NET_CLOSE_WINDOW root window message
|
|
_NET_MOVERESIZE_WINDOW root window message
|
|
_NET_WM_MOVERESIZE root window message
|
|
|
|
Application Window Properties:
|
|
|
|
_NET_WM_NAME window property
|
|
_NET_WM_VISIBLE_NAME window property
|
|
_NET_WM_ICON_NAME window property
|
|
_NET_WM_VISIBLE_ICON_NAME window property
|
|
_NET_WM_DESKTOP window property + message
|
|
_NET_WM_WINDOW_TYPE window property
|
|
_NET_WM_WINDOW_TYPE_DESKTOP property value (atom)
|
|
_NET_WM_WINDOW_TYPE_DOCK property value (atom)
|
|
_NET_WM_WINDOW_TYPE_TOOLBAR property value (atom)
|
|
_NET_WM_WINDOW_TYPE_MENU property value (atom)
|
|
_NET_WM_WINDOW_TYPE_UTILITY property value (atom) nil
|
|
_NET_WM_WINDOW_TYPE_SPLASH property value (atom) nil
|
|
_NET_WM_WINDOW_TYPE_DIALOG property value (atom)
|
|
_NET_WM_WINDOW_TYPE_NORMAL property value (atom)
|
|
_NET_WM_STATE window property + message
|
|
_NET_WM_STATE_MODAL property value (atom)
|
|
_NET_WM_STATE_STICKY property value (atom)
|
|
_NET_WM_STATE_MAXIMIZED_VERT property value (atom)
|
|
_NET_WM_STATE_MAXIMIZED_HORZ property value (atom)
|
|
_NET_WM_STATE_SHADED property value (atom)
|
|
_NET_WM_STATE_SKIP_TASKBAR property value (atom)
|
|
_NET_WM_STATE_SKIP_PAGER property value (atom)
|
|
_NET_WM_STATE_HIDDEN property value (atom)
|
|
_NET_WM_STATE_FULLSCREEN property value (atom)
|
|
_NET_WM_STATE_ABOVE property value (atom)
|
|
_NET_WM_STATE_BELOW property value (atom)
|
|
_NET_WM_ALLOWED_ACTIONS window property
|
|
_NET_WM_ACTION_MOVE property value (atom)
|
|
_NET_WM_ACTION_RESIZE property value (atom)
|
|
_NET_WM_ACTION_MINIMIZE property value (atom)
|
|
_NET_WM_ACTION_MAXIMIZE_VERT property value (atom)
|
|
_NET_WM_ACTION_MAXIMIZE_HORZ property value (atom)
|
|
_NET_WM_ACTION_SHADE property value (atom)
|
|
_NET_WM_ACTION_STICK property value (atom)
|
|
_NET_WM_ACTION_FULLSCREEN property value (atom)
|
|
_NET_WM_ACTION_CHANGE_DESKTOP property value (atom)
|
|
_NET_WM_ACTION_CLOSE property value (atom)
|
|
_NET_WM_STRUT window property
|
|
_NET_WM_ICON_GEOMETRY window property
|
|
_NET_WM_ICON window property
|
|
_NET_WM_PID window property
|
|
+----------------------------------------------------------------+
|
|
| The ICCCM specified property WM_CLIENT_MACHINE must be set to |
|
|
| a fully qualified domain name of client's host to allow the WM |
|
|
| to kill windows that do not respond to a _NET_WM_PING |
|
|
+----------------------------------------------------------------+
|
|
_NET_WM_HANDLED_ICONS window property
|
|
|
|
Window Manager Protocols:
|
|
|
|
_NET_WM_PING window property + message
|
|
===========================================================================
|
|
|
|
|
|
KDE-specific extensions (for completeness):
|
|
|
|
Property Name Type
|
|
==========================================================================
|
|
_KDE_WM_CHANGE_STATE root window message
|
|
_KDE_NET_SYSTEM_TRAY_WINDOWS root window property
|
|
_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR window property
|
|
_KDE_NET_WM_FRAME_STRUT window property
|
|
|
|
_NET_WM_WINDOW_TYPE additions:
|
|
_KDE_NET_WM_WINDOW_TYPE_OVERRIDE property value (atom)
|
|
_KDE_NET_WM_WINDOW_TYPE_TOPMENU property value (atom)
|
|
==========================================================================
|
|
|
|
|
|
Inter-Client Communication Conventions Manual (ICCCM) specs (for completeness):
|
|
|
|
Property Name Type Contents / Format
|
|
==========================================================================
|
|
|
|
Client properties:
|
|
|
|
WM_NAME window property String / 8
|
|
WM_ICON_NAME window property Text
|
|
WM_NORMAL_HINTS window property Window / 32
|
|
WM_HINTS window property WM_HINTS / 32
|
|
WM_CLASS window property Text
|
|
WM_TRANSIENT_FOR window property WM_ICON_SIZE / 32
|
|
WM_PROTOCOLS window property Atom / 32
|
|
WM_COLORMAP_WINDOWS top-level window property WM_STATE / 32
|
|
WM_CLIENT_MACHINE window property Window / 32
|
|
WM_STATE
|
|
WM_CLIENT_LEADER window property Window / 32
|
|
WM_CLIENT_ROLE window property String / 8
|
|
|
|
Window manager properties:
|
|
|
|
WM_STATE window property WM_STATE / 8?
|
|
WM_ICON_SIZE window property WM_ICON_SIZE / 8?
|
|
==========================================================================
|
|
|