IT-Lexikon › Programmierung › WM_STATE

WM_STATE

Programmierung Svenska → Aktualisiert: 2026-10-08

Die Eigenschaft, die ein Fenstermanager auf einem Client-Fenster setzt, um dessen Zustand anzugeben – und die in der Praxis zum Beleg dafür wurde, dass ein Fenster überhaupt eine echte Anwendung ist.

Die meisten ICCCM-Eigenschaften schreibt der Client und liest der Fenstermanager. WM_STATE läuft in die andere Richtung. Sobald der Fenstermanager ein Top-Level-Fenster übernommen hat, meist indem er es in einen eigenen Rahmen packt, setzt er die Eigenschaft mit zwei Feldern: dem Zustand und der ID des Icon-Fensters, falls es eines gibt. Die Zustände sind WithdrawnState (0), NormalState (1) und IconicState (3). Die Lücke bei 2 ist kein Versehen: ZoomState und InactiveState (4) standen in frühen Entwürfen und blieben, als veraltet markiert, in der Xutil.h stehen, wo sie bis heute liegen. Will ein Client den Zustand ändern, schickt er WM_CHANGE_STATE an das Root-Fenster; will er ganz verschwinden, nimmt er sein Fenster vom Bildschirm und sendet ein synthetisches UnmapNotify, damit der Fenstermanager weiß, dass es Absicht war.

Der Nebeneffekt wuchs über den Zweck hinaus. Da nur verwaltete Client-Fenster WM_STATE tragen, ist die Eigenschaft der einfachste Weg, das eigentliche Anwendungsfenster vom Rahmen darum und von allen Hilfsfenstern im Baum zu unterscheiden. xprop, xdotool, wmctrl und EWMHs _NET_CLIENT_LIST finden Clients alle anhand dieser Eigenschaft. Ein Fenster ohne WM_STATE unter einem laufenden Fenstermanager ist daher ein Menü, ein Rahmen oder eine Anwendung, die niemand übernommen hat.

← Zurück zum Lexikon