[[Vorlage(Archiviert, "")]] {{{#!vorlage Wissen [:Paketinstallation_DEB:Ein einzelnes Paket installieren] }}} [[Inhaltsverzeichnis]] [[Bild(Wiki/Icons/Oxygen/preferences-system-windows.png,64,align=left)]][http://www.kde-apps.org/content/show.php/WMIface?content=40425 WMIface] {en} ist ein Kommandozeilen-Werkzeug, um mit [wikipedia:NetWM:]-kompatiblen [:Fenstermanager: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 [http://download.opensuse.org/repositories/home:/llunak:/kde/ hier] {dl} 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]. [[Vorlage(Fremd,Paket)]] = 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 [:less#zless-und-bzless:zless] gelesen werden kann. Generell sieht die Benutzung von WMIface follgendermaßen aus: {{{#!vorlage Befehl wmiface }}} 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: {{{#!vorlage Befehl 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: {{{#!code bash konqueror http://dot.kde.org --name dotkonqueror & sleep 10 window=$(wmiface findNormalWindows "" "dotkonqueror Konqueror" "" "" 0 false) wmiface closeWindow $window }}} Über alle Desktops navigieren: {{{#!code bash 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 }}} {{{#!vorlage Hinweis Dies ist eine Endlosschleife und muss daher in der Konsole abgebrochen werden! }}} = Links = * [http://www.kde-apps.org/content/show.php/WMIface?content=40425 Homepage von WMIface] {en} #tag: Shell, Desktop, KDE, Fenstermanager