Property (X11)
Benannte Datenblöcke, die der X-Server an einem Fenster für jeden bereithält, der sie lesen mag – das schwarze Brett, auf dem Fenstermanager, Zwischenablagen und ganz ICCCM aufbauen.
Jedes Fenster in X kann beliebig viele Properties tragen. Eine Property hat einen Namen und einen Typ, beide Atome, ein Format von 8, 16 oder 32 Bit und eine Folge von Werten. Ein Client setzt sie mit XChangeProperty, wobei sich der Inhalt ersetzen, voranstellen oder anhängen lässt, und liest die anderer mit XGetWindowProperty, das stückweise liefert und die Property im selben Aufruf löschen kann. Wer wissen will, wann sich etwas ändert, fordert PropertyChangeMask an und erhält PropertyNotify. Den Server kümmert der Inhalt nicht: Es sind Bytes mit einem Etikett, und sie bleiben, bis jemand sie entfernt oder das Fenster zerstört wird.
Alles, wofür das X-Protokoll keinen eigenen Begriff hat, läuft über Properties. ICCCM ist weitgehend eine Liste, welche davon ein Toplevel-Fenster tragen soll: WM_NAME, WM_CLASS, WM_HINTS, WM_NORMAL_HINTS. EWMH fügte die _NET_-Familie hinzu, und das Root-Fenster hält die globalen, von RESOURCE_MANAGER bis zur Liste der offenen Fenster des Fenstermanagers. Selbst die Zwischenablage nimmt diesen Weg: Der Besitzer schreibt die Daten in eine Property am Fenster des Anfragenden. xprop zeigt das alles an, weshalb es das Erste ist, was man startet, wenn sich ein Fenster seltsam verhält.