kwin/COMPLIANCE
Karol Szwed 4628b35234 More of the NetWM audit.
We have lots of work to do!

svn path=/trunk/kdebase/kwin/; revision=194045
2002-12-15 12:21:06 +00:00

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?
==========================================================================