wmctrl
Mehr Infos
- Entwickler
- Tomáš Stýblo
- Jahr
- 2003
- Typ
- Kommandozeilenwerkzeug
- Lizenz
- GPL
Das Kommandozeilenwerkzeug, das jeden EWMH-konformen Fenstermanager steuert – Fenster auflisten, eines aktivieren, maximieren, die Arbeitsfläche wechseln – indem es genau die Nachrichten schickt, die auch ein Pager schicken würde.
Nachdem EWMH festgelegt hatte, wie Taskleisten und Pager mit dem Fenstermanager sprechen, war es möglich, ein Programm zu schreiben, das dasselbe aus einem Skript heraus tut. Tomáš Stýblo veröffentlichte wmctrl 2003; Version 1.07 von 2005 war die letzte und ist bis heute die, welche Distributionen mit ein paar Patches ausliefern. wmctrl -l listet alle Fenster mit ID, Arbeitsfläche und Titel auf, -a "Firefox" aktiviert und hebt das erste passende Fenster nach vorn, -s 2 wechselt zur dritten Arbeitsfläche, -d listet die Arbeitsflächen mit ihren Nutzbereichen auf, und -r Fenster -b add,maximized_vert,maximized_horz ändert _NET_WM_STATE genau so, wie es die Schaltfläche des Fenstermanagers täte. -m verrät, welcher Fenstermanager läuft, ausgelesen aus _NET_SUPPORTING_WM_CHECK.
Das Werkzeug fasst Fenster nie direkt an. Alles geht als ClientMessage an das Root-Fenster, sodass der Fenstermanager seine Richtlinien behält; Aktivierungen werden mit dem Quellfeld „pager“ gesendet, wodurch der Fokusdiebstahl-Schutz sie als Entscheidung des Nutzers durchlässt. Das macht wmctrl zur unspektakulären, aber verlässlichen Wahl für Skripte, die beim Login Fenster anordnen, während xdotool dort übernimmt, wo EWMH endet und XTEST nötig ist. Unter Wayland funktioniert nichts davon, da kein Client die Fenster der anderen sehen darf, und jeder Compositor hat stattdessen seinen eigenen Befehl.