Mam skrypt bash, który przenosi moje okna z lewego ekranu na prawy ekran w konfiguracji z dwoma ekranami. Obecnie sposób, w jaki to działa, polega na przewijaniu identyfikatorów okien, które są podawane przez, xdotool search --onlyvisible --maxdepth 2 --class ""
a następnie przesuwa je w prawo o szerokość ekranu. Działa już ... chyba że okno jest zmaksymalizowane lub zminimalizowane.
Potrzebny jest więc sposób sprawdzenia aktualnego stanu okna. Znalazłem odpowiedź, która umożliwia dodawanie i usuwanie tych bitów, ale gdzie jest sposób, aby sprawdzić, czy są już ustawione?
Jeśli nie można tego zrobić za pomocą xdotool , powinno być możliwe ponowne użycie identyfikatora okna dostarczonego przez komendę wspomnianą powyżej.
command-line
window-manager
xdotool
wmctrl
xprop
v010dya
źródło
źródło
devilspie
który jest przeznaczony do wykonywania dokładnie tego rodzaju prac okiennych. Więc nie trzeba przekodowywać, wystarczy skonfigurowaćOdpowiedzi:
Pobierz informacje o stanie okna
Możesz uzyskać informacje (i wiele więcej) z polecenia:
Aby uzyskać to, czego konkretnie szukasz:
Dane wyjściowe będą wyglądać następująco:
w oknie, które jest zmaksymalizowane (h + v) i zminimalizowane w tym samym czasie lub po prostu
(lub brak danych wyjściowych), jeśli żadna z nich nie ma miejsca.
Więcej zabawy
Oczywiście, używając różnych języków, możesz użyć Wnck , podobnie jak w poniższym fragmencie python. (fragment z shufflera okien ). Fragment generuje listę z nazwą okna + albo
True
alboFalse
(zminimalizowaną).Wyjście wygląda następująco:
NB
xprop
będzie handel zarówno szesnastkowym (jako wyjście z np.wmctrl
), jak i dziesiętnym (jako wyjście z np.xdotool
) id w równym stopniu np. użyj:lub
Metody nie będą działać na Wayland!
źródło
_NET_WM_STATE(ATOM)
nie pojawia się, jak pokazano w odpowiedzi, z pustą wartością. Zamiast tego nie ma go wcale na wyjściu.