Chciałbym uzyskać rozmiar bieżącego okna ze skryptu powłoki ...
Naprawdę niewiele więcej do powiedzenia ... Wolałbym użyć wmctrl.
źródło
Chciałbym uzyskać rozmiar bieżącego okna ze skryptu powłoki ...
Naprawdę niewiele więcej do powiedzenia ... Wolałbym użyć wmctrl.
wmctrl -lG
Daje ci coś takiego:
oli@bert:~$ wmctrl -lG
0x0384c0d5 -1 1590 1030 330 170 bert N/A
0x01200023 -1 0 0 3840 1200 bert x-nautilus-desktop
0x01000003 -1 3840 2352 1920 24 bert Bottom Expanded Edge Panel
0x01000028 -1 0 2352 1920 24 bert Bottom Expanded Edge Panel
0x0500003e 0 676 252 1404 1015 bert Chromium
0x02e00021 0 3860 160 1361 1084 bert Liferea
0x02000047 0 6650 940 506 683 bert Social broadcast messages
0x04600004 0 4546 460 1263 833 bert oli@bert: ~
Dzięki temu możesz grep
i w cut
dół na nich, aby pozostać z wartościami geometrii (kolumny 3-6).
Aby zacytować stronę podręcznika, aby dokładnie zrozumieć, jakie są kolumny:
-l
Wyświetl listę okien zarządzanych przez menedżera okien. Dla każdego okna wyprowadzany jest jeden wiersz, z podziałem wiersza na kolumny oddzielone spacjami. Pierwsza kolumna zawsze zawiera tożsamość okna jako liczbę szesnastkową, a druga kolumna zawsze zawiera numer pulpitu (-1 służy do identyfikacji lepkiego okna). Jeśli podano opcję -p, następna kolumna będzie zawierać PID dla okna jako liczbę całkowitą dziesiętną. Jeśli podano opcję -G, wówczas pojawią się cztery kolumny liczb całkowitych: przesunięcie x, przesunięcie y, szerokość i wysokość. Następna kolumna zawsze zawiera nazwę komputera klienckiego. Pozostała część wiersza zawiera tytuł okna (prawdopodobnie z wieloma spacjami w tytule).
Wierzę, że wmctrl nie ma żadnej opcji bezpośredniego znalezienia identyfikatora aktywnego okna.
Jeśli ktoś wie, jak to zrobić, chciałbym wiedzieć.
Powiedziawszy to, oto kilka skryptów, które wypisują rozmiar aktywnego okna.
To jest: wmctrl + xdotool ... (nie używa sed).
To jest: xwininfo + xdotool + sed
xwininfo
jest częściąx11-utils
źródło
Użyj
xprop
lubxwininfo
. Oba są dostarczane domyślnie, instalacja nie jest wymaganaPrzykłady użycia:
Oba polecenia zamieniają kursor w kwadrat / krzyż, aby umożliwić wybranie określonego okna.
Alternatywnie można określić okno w wierszu poleceń w formie XID
Inne posty, w których zostały użyte
W szczególności,
xwininfo
był aktywnie wykorzystywany przeze mnie do skrypty, takie jak w tych pytaniach AskUbuntu:źródło
Skrypty powłoki nie znają okien ani nie dbają o nie. W najlepszym wypadku działają one w terminalu (który może, ale nie musi być wyświetlany w oknie). Jeśli chcesz uzyskać szerokość i wysokość terminala w znakach, użyj narzędzia stty.
źródło
Uważam, że
tput cols
działa całkiem nieźle!źródło
wmctrl
, nie mówimy o oknach konsoli, ale graficznych środowiskach.Mam 3 ekrany, co daje 3 linie o wymiarach:
źródło