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,600

Dieser 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
done

Dieses Skript verschiebt alle gefundenen Fenster in den ersten Workspace.

Keywords

wmctrllinuxx11fenstermanagementautomation

Linux-Blog-Overview