Potrzebny skrypt sprawdzaj
Potrzebny skrypt sprawdzający czy któreś okno jest zmaksymalizowane
Potrzebny skrypt sprawdzający czy któreś okno jest zmaksymalizowane.
Nie wiem czy jest jakaś komenda, którą wywołam z terminala i zwróci mi jakąś wartość, jeśli któreś z uruchomionych okien zajmuje cały ekran.
Nie wiem czy jest jakaś komenda, którą wywołam z terminala i zwróci mi jakąś wartość, jeśli któreś z uruchomionych okien zajmuje cały ekran.
Wszystko zależy od menedżera okien, ale spróbuj tak: polecenie listuje wszystkie okna, z tej listy wyciągamy ID (to wartość z pierwszej kolumny). Wyżej otrzymane ID wklejamy do programu xprop: i analizujemy wynik.
Przykład:
Jak widać to okno mplayera, i teraz:
To znaczy, że okno jest zmaksymalizowane w poziomie i w pionie. Inne wartości to:
Kod: Zaznacz cały
wmctrl -l
Kod: Zaznacz cały
xprop -id ID _NET_WM_STATE
Przykład:
Kod: Zaznacz cały
$ wmctrl -l
0x02200001 0 N/A mplayer2
Kod: Zaznacz cały
$ xprop -id 0x02200001 _NET_WM_STATE
_NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ
- _NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN - okno w trybie pełnoekranowym.
- _NET_WM_STATE(ATOM) = _NET_WM_STATE_HIDDEN - okno zminimalizowane do paska.
- _NET_WM_STATE(ATOM) = - (brak parametru) - żadne z powyższych, zwykłe okno.
Też nie sprawdzałem tego skryptu. Opiera się to na narzędziu xdotool http://www.semicomplete.com/projects/xdotool/ i z tego co widzę ten skrypt sprawdza, czy któreś okno jest aktywne więc nie jest to ani full-screen ani maksymalizacja.
Przypuszczam, że to narzędzie potrafi sprawdzić też inne stany okna co sprowadzi się do lekkiej przeróbki skryptu.
Przypuszczam, że to narzędzie potrafi sprawdzić też inne stany okna co sprowadzi się do lekkiej przeróbki skryptu.
Okno aktywne może być fullscreen, albo zmaksymalizowane (o ile dobrze rozumiem znaczenie aktywne). A skrypt pobiera rozmiary okna i porównuje z rozmiarami ekranu (w pikselach). xwininfo nie podaje info o stanie okna. W moim przypadku zmaksymalizowana opera ma rozmiar 1280x982 przy rozdzielczości ekranu 1280x1024. Problemem są jak już wcześniej napisałem paski narzędzi (wszelkiego rodzaju docki), które rezerwują sobie pewien fragment ekranu. Żeby znaleźć zmaksymalizowane okno w ten sposób należałoby znaleźć wszystkie paski narzędzi, odjąć ich sumaryczny rozmiar od rozmiaru ekranu i dopiero porównać z rozmiarem okna. Dlatego jak już wcześniej napisałem ten skrypt nadaje się do określania czy okno jest w fullscreen, a jego modyfikacja wcale nie jest taka łatwa.
Całkiem sprawnie mi poszło. Dzięki Wam.
Jest jeszcze inna sprawa, raczej nie związana z zmaksymalizowanymi oknami. Nie wiem czy warto zakładać nową dyskusję na ten temat, więc zapytam tu. Jak uznacie, że warto, to rozdzielcie tematy.
Mój ojciec jest przyzwyczajony do docka po prawej stronie. Instalowanie zewnętrznych aplikacji nie ma sensu, bo nie potrzebuje tych wszystkich opcji i sprzęt też nie jest dość mocny żeby tego nie odczuł. Zrobiłem mu po prawej stronie zwykły panel. Ale ubzdurało mu się zwijanie i rozwijanie tego panelu skrótem klawiszowym. Znowu potrzeba jakiś program konsolowy, co zmieni szerokość panelu. Albo przynajmniej opcje 'zawsze widoczny' i 'autoukrywanie'. Naturalnie debian i kde.
Jest jeszcze inna sprawa, raczej nie związana z zmaksymalizowanymi oknami. Nie wiem czy warto zakładać nową dyskusję na ten temat, więc zapytam tu. Jak uznacie, że warto, to rozdzielcie tematy.
Mój ojciec jest przyzwyczajony do docka po prawej stronie. Instalowanie zewnętrznych aplikacji nie ma sensu, bo nie potrzebuje tych wszystkich opcji i sprzęt też nie jest dość mocny żeby tego nie odczuł. Zrobiłem mu po prawej stronie zwykły panel. Ale ubzdurało mu się zwijanie i rozwijanie tego panelu skrótem klawiszowym. Znowu potrzeba jakiś program konsolowy, co zmieni szerokość panelu. Albo przynajmniej opcje 'zawsze widoczny' i 'autoukrywanie'. Naturalnie debian i kde.