Ich habe ein Bash-Skript, das meine Fenster im Dual-Screen-Setup vom linken zum rechten Bildschirm verschiebt. Derzeit werden die Fenster-IDs, die von angegeben werden, durchlaufen xdotool search --onlyvisible --maxdepth 2 --class ""
und dann um die Bildschirmbreite nach rechts verschoben. Es funktioniert bereits ... es sei denn, das betreffende Fenster wird maximiert oder minimiert.
Was also benötigt wird, ist eine Möglichkeit, den aktuellen Status des Fensters zu überprüfen. Ich habe eine Antwort gefunden , die die Möglichkeit bietet, diese Bits hinzuzufügen und zu entfernen, aber wo kann überprüft werden, ob sie bereits gesetzt sind?
Wenn dies nicht über xdotool möglich ist , sollte es möglich sein, die durch den oben genannten Befehl bereitgestellte Fenster-ID wiederzuverwenden.
quelle
devilspie
welche genau für diese Art von Fensterarbeiten ausgelegt sind. Sie müssen also nicht neu codieren, sondern müssen nur konfigurierenAntworten:
Informationen zum Fensterstatus abrufen
Sie können die Informationen (und vieles mehr) über den Befehl abrufen:
Um das zu bekommen, wonach Sie speziell suchen:
Die Ausgabe sieht folgendermaßen aus:
in einem Fenster, das maximiert (h + v) und gleichzeitig minimiert ist, oder nur
(oder überhaupt keine Ausgabe), wenn keine davon der Fall ist.
Mehr Spaß
Natürlich können Sie in verschiedenen Sprachen Wnck verwenden , wie im folgenden Python-Snippet. (Ausschnitt aus dem Fenster-Shuffler ). Das Snippet gibt eine Liste aus, in der der Fenstername + entweder
True
oderFalse
(minimiert) angezeigt wird.Die Ausgabe sieht aus wie:
NB
xprop
behandelt sowohl hexadezimale (als Ausgabe von zBwmctrl
) als auch dezimale (als Ausgabe von zBxdotool
) IDs gleichermaßen, z.oder
Methoden funktionieren nicht auf Wayland!
quelle
_NET_WM_STATE(ATOM)
wird es, wie in der Antwort gezeigt, nicht mit einem leeren Wert angezeigt. Stattdessen ist es überhaupt nicht in der Ausgabe.