staging.inyokaproject.org

wmctrl script verfeinern

Status: Ungelöst | Ubuntu-Version: Xubuntu 18.04 (Bionic Beaver)
Antworten |

Bruggerolivier

Anmeldungsdatum:
15. Dezember 2019

Beiträge: 9

Hallo

Ich benutze XFCE mit einem Dualscreen, und möchte das Aktive Fenster per Script mit wmcrtl per Tastenkombination auf den zweiten Bildschirm verschieben.

soweit funktioniert dies

Nur verschiebt wmctrl nicht einfach Maximierte Fenster, sondern ich muss diese zuerst verkleinern, und danach kann ich diese Verschieben.

Mein Script sieht also momentan so aus

1
2
3
#!/bin/bash
wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
wmctrl -r :ACTIVE: -e 0,2400,250,-1,-1

Jetzt möchte ich in diesen Script eine Abfrage hinzufügen, damit es mir Maximierte Fenster nach dem verschieben wieder maximiert, und kleine Fenster klein lässt.

Nur, mit welchem Befehl kann ich im Terminal herausfinden, ob das Fenster Maximiert ist.

Am Schluss würde das Script in etwa so aussehen:

1
2
3
4
5
6
7
8
#!/bin/bash
if [ "Befehl" = "maximized" ] ; then
wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
wmctrl -r :ACTIVE: -e 0,2400,250,-1,-1
wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz
else
wmctrl -r :ACTIVE: -e 0,2400,250,-1,-1
fi

kann mir da jemand einen Tipp geben, mit welchem Befehl ich auslesen kann, ob ein Fenster Maximiert ist? liebe Grüsse

Bruggerolivier

(Themenstarter)

Anmeldungsdatum:
15. Dezember 2019

Beiträge: 9

Hallo zusammen

Momentan habe ich mir 4 Skripts dafür geschrieben, zwei wo mir die Fenster nach dem verschieben automatisch maximiert, und zwei die mir die Fenster auf der gewünschten Größe belassen.

Dies funktioniert zwar, doch ich muss jetzt für das Verschieben der Fenster 4 Tastenkombinationen merken (2 für den linken Bildschirm + 2 für den rechten Bildschirm).

Ist also nicht die Ideale Lösung.

Ich könnte mit zwar im Script auch eine Schleife hinzufügen, müsste aber wiederum nach der Tastenkombination jedes mal auswählen, ob ich das Fenster danach Maximiert sehen möchte oder nicht, wäre also auch nicht so der Bringer.

Da ich bis jetzt noch keine Antwort auf den ersten Post erhalten habe nehme ich mal an, dass dies nicht so einfach herauszufinden ist ob ein Fenster Maximiert ist, oder eben nicht.

vielleicht hat ja noch jemand eine bessere Lösung.

jedenfalls trotzdem vielen Dank

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Bruggerolivier schrieb:

Da ich bis jetzt noch keine Antwort auf den ersten Post erhalten habe nehme ich mal an, dass dies nicht so einfach herauszufinden ist ob ein Fenster Maximiert ist, oder eben nicht.

Das kannst du z.B. mit xprop herausfinden:

xprop -id $WINDOW_ID | grep -Po "(?<=_NET_WM_STATE\(ATOM\) = ).*" 

Damit bekommst du eine Komma-getrennte Ausgabe der für das Fenster gesetzten States - _NET_WM_STATE_FULLSCREEN heißt Vollbildmodus, _NET_WM_STATE_MAXIMIZED_HORZ horizontal maximiert und _NET_WM_STATE_MAXIMIZED_VERT vertikal maximiert. Bei einem maximierten Fenster, das den kompletten Bildschirm einnimmt, sind üblicherweise die beiden letztgenannten Werte gesetzt.

Antworten |