Einführung in wmctrl
wmctrl ist ein Kommandozeilen-Tool unter Linux zur Verwaltung von Fenstern in X11-Umgebungen. Es liefert Informationen zu aktiven Fenstern und steuert diese über Skripte und Automatisierung.
Funktionen und Anwendungsgebiete
- Fensterinformationen abrufen: Zeigt Titel, Klassen, Workspace-Zugehörigkeiten und Prozess-IDs (über -lp) der geöffneten Fenster an.
- Fenstersteuerung: Verschiebt, ändert Größe und wechselt zwischen Workspaces für Fenster.
- Automatisierung: In Skripte integrierbar zum Erstellen komplexer Workflows.
Grundlegende Syntax
Grundsyntax von wmctrl:
wmctrl [Optionen]
Wichtige Parameter
-l: Listet alle Fenster mit ID, Workspace, Host und Titel.-lp: Gibt zusätzlich zur Fenster-ID auch die zugehörige Prozess-ID aus.-r <WIN>: Wählt ein Fenster anhand der ID oder des Namens.-e <MVARG>: Setzt Fensterposition und -größe im Format:G,X,Y,W,H-s <DESK>: Wechselt zu einem definierten Workspace.
Beispiel:
wmctrl -r "Terminal" -e 0,100,100,800,600Dieser Befehl verschiebt das Fenster “Terminal” zu Position (100, 100) und setzt die Größe auf 800×600 Pixel. Der Wert “0” hält den aktuellen Workspace bei.
Erweiterte Nutzungsszenarien
-
Fensterfokussierung: Ein Fenster in den Vordergrund holen, z. B.:
wmctrl -a "Browser" -
Workspaceverwaltung: Automatisches Verschieben von Fenstern zwischen Workspaces.
-
Skriptbasierte Steuerung: Dynamische Anpassung der Benutzeroberfläche durch die Integration in Shell-Skripte.
Integration in Skripte
Mit wmctrl in Bash oder anderen Skriptsprachen lassen sich Fenster automatisiert anordnen. Beispiel:
#!/bin/bash
# Alle Fenster in den ersten Workspace verschieben
for win in $(wmctrl -l | awk '{print $1}'); do
wmctrl -ir $win -t 0
doneDieses Skript verschiebt alle gefundenen Fenster in den ersten Workspace.