IT-Lexikon › Programmierung › WM_Sn

WM_Sn

Programmierung Svenska → Aktualisiert: 2026-10-09

ICCCM-2.0-Selection, eine pro Screen, deren Besitz ein Fenstermanager beim Start übernimmt – damit ein anderer sauber ablösen kann, und zwar mit --replace statt per Abschießen.

Dass es pro Screen nur einen Fenstermanager geben kann, erzwingt der X-Server selbst: Nur ein Client darf SubstructureRedirect auf der Root auswählen, der nächste erhält BadAccess und die vertraute Meldung „another window manager is already running“. Die Sperre sagt aber nichts darüber, wer läuft, und bietet keinen Weg zum Wechsel ohne Abschießen. 1994 entlieh ICCCM 2.0 ein Werkzeug von der Zwischenablage: Selections. Ein startender Fenstermanager übernimmt per XSetSelectionOwner auf einem eigenen unsichtbaren Fenster den Besitz der Selection WM_S0 für Screen 0, WM_S1 für den nächsten. Gibt es bereits einen Besitzer, beendet sich der Neuling – es sei denn, er wurde mit --replace gestartet. Dann nimmt er die Selection trotzdem, der alte Besitzer erhält ein SelectionClear, gibt seine Fenster geordnet frei und beendet sich.

Das ist der Mechanismus hinter compiz --replace, dem Befehl, den 2006 die halbe Linux-Welt tippte, um Metacity gegen einen rotierenden Würfel zu tauschen, und hinter demselben Schalter in Openbox, KWin und xfwm4. Das Muster wurde dann für alles wiederverwendet, was nur einmal existieren darf: _NET_WM_CM_Sn für den Compositor, _NET_SYSTEM_TRAY_Sn für den System Tray und _XSETTINGS_Sn für den Einstellungsdaemon. Den Besitz der Selection zu halten heißt nicht, dass der Besitzer etwas Bestimmtes kann – dafür gibt es _NET_SUPPORTING_WM_CHECK –, aber er stellt unzweideutig fest, dass ein Fenstermanager existiert und an welches Fenster Anfragen zu richten sind. Fenstermanager, die das Ritual nie mitgemacht haben, gibt es weiterhin, und sie müssen auf die alte Art beendet werden.

← Zurück zum Lexikon