staging.inyokaproject.org

WMIface

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/Oxygen/preferences-system-windows.pngWMIface 🇬🇧 ist ein Kommandozeilen-Werkzeug, um mit NetWM-kompatiblen Fenstermanagern, wie z.B. Archiv/KWin, Compiz oder Archiv/Metacity, zu interagieren. Ursprünglich wurde die Anwendung für KDEs Fenstermanager geschrieben, unterstützt nun aber alle Fenstermanager und hat keinerlei KDE-Abhängigkeiten.

Installation

Für WMIface existiert noch kein Paket in den Paketquellen, jedoch stehen über openSUSEs Buildservice Pakete für Ubuntu bereit. Das Paket kann von hier ⮷ heruntergeladen werden. Dazu muss man den Ordner für die passende Ubuntu Version (angegeben als xUbuntu) auswählen und je nach Architektur in das Verzeichnis i386 oder amd64 navigieren. Das Debian-Archiv kann wie gewohnt installiert werden [1].

Hinweis!

Fremdpakete können das System gefährden.

Benutzung

WMIface bietet die Möglichkeit, direkt mit dem Fenstermanager zu interagieren und die Verwaltung der Fenster über die Kommandozeile zu beeinflussen. Somit lassen sich die Fenster auf einem Desktop anzeigen und diese dann zum Beispiel minimieren oder auf den aktuellen verschieben. In /usr/share/doc/wmiface/README.gz findet sich eine ausführliche Dokumentation, welche mit Hilfe von zless gelesen werden kann. Generell sieht die Benutzung von WMIface follgendermaßen aus:

wmiface <befehl> <parameter des befehls> 

Hierbei ist wichtig zu erwähnen, dass das Werkzeug an Fenstermanager angelehnt ist. Die Identification eines Fensters ist also eine eindeutige Nummer. Es gibt einige Befehle mit denen sich die Nummer eines Fensters ermitteln lässt. Alternativ kann die Nummer auch über das Programm xwininfo ermittelt werden. Hierbei muss jedoch der Paramter -int übergeben werden, um eine numerische Darstellung der Fenster-ID zu erhalten:

xwininfo -int 

Ermitteln aller Fenster

WMIface bietet verschiedene Befehle, um die IDs von Fenstern zu ermitteln:

  • normalWindows - ermittelt die Fenster je nach übergebenen Parameter (true/false) für den aktuellen oder alle Desktops. Die Fenster werden in der Reihenfolge, wie sie übereinander liegen, ausgegeben. Das oberste Fenster wird als erstes ausgegeben. Dieser Befehl findet nur normale Fenster, d.h. Fenster wie der Desktop oder die Kontrollleiste werden nicht berücksichtigt.

  • allWindows - wie normalWindows, liefert aber alle Fenster, also auch den Desktop und die Kontrollleiste

  • findWindows - ermöglicht eine mächtige Suche nach den Fenstern, die von normalWindows zurückgegeben würden.

    • Titel - Einschränkung auf Fenster mit dem übergebenen Titel, wenn "" wird diese Option ignoriert.

    • Klasse - Einschränkung auf Fenster mit der übergebenen Fensterklasse, wenn "" wird diese Option ignoriert.

    • Rolle - Einschränkung auf Fenster mit der übergebenen Fensterrolle, wenn "" wird diese Option ignoriert.

    • Hostname - Einschränkung auf Fenster auf dem übergebenen Hostname, diese Option braucht nicht berüchsichtigt zu werden. Wenn "" wird diese Option ignoriert.

    • pid - Einschränkung auf Fenster mit der übergebenen Prozess-ID, wenn 0 wird die Option ignoriert.

    • aktuellerDesktop - true/false, ob nur aktueller oder alle Desktops berücksichtigt werden sollen

  • findAllWindows - wie erwartet, wie findWindows mit Fenstern wie Desktop

Interaktion mit Arbeitsflächen

WMIface bietet auch die Möglichkeit, mit den virtuellen Arbeitsflächen (Desktops) zu interagieren:

  • currentDesktop - die aktuelle Arbeitsfläche

  • setCurrentDesktop - wechselt auf die übergebene Arbeitsfläche

  • numberOfDesktops - liefert die Anzahl der aktuell benutzten Arbeitsflächen

Ermitteln von Fenstereigenschaften

Durch Übergabe der Fenster-ID an eine der folgenden Befehle kann die angegebene Eigenschaft ermittelt werden:

  • caption - Titel des Fensters

  • windowClass - Fensterklasse

  • windowRole - Fensterrolle

  • windowHostname - Hostname

  • pid - Prozess-ID

  • windowDesktop - virtuelle Arbeitsfläche oder -1 für Fenster auf allen Arbeitsflächen

  • frameGeometry - Fenstergeometrie inklusive Fensterdekoration

  • windowGeometry - Fenstergröße exklusive Fensterdekoration

Für eine vollständige Liste sei auf die Dokumentation verwiesen.

Verändern von Fenstereigenschaften

WMIface ermöglicht durch Übergabe der Fenster-ID und bei manchen Befehlen weiterer Paramter, die Fenster zu beeinflussen. Als Beispiel sei der Befehl minimize genannt, welcher ein übergebenes Fenster minimiert.

Beispiele

Starten von Konqueror und Schließen nach 10 Sekunden:

1
2
3
4
konqueror http://dot.kde.org --name dotkonqueror &
sleep 10
window=$(wmiface findNormalWindows "" "dotkonqueror Konqueror" "" "" 0 false)
wmiface closeWindow $window

Über alle Desktops navigieren:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
while true; do
    sleep 10
    desktop=$(wmiface currentDesktop)
    total=$(wmiface numberOfDesktops)
    if test $desktop = $total; then
        wmiface setCurrentDesktop 1
    else
        wmiface setCurrentDesktop $(( desktop + 1 ))
    fi
done

Hinweis:

Dies ist eine Endlosschleife und muss daher in der Konsole abgebrochen werden!

Diese Revision wurde am 7. Februar 2020 18:08 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Desktop, KDE, Fenstermanager, Shell