Итак, по сути, я пытаюсь написать скрипт-сторожевой таймер, который проверяет заголовки окон по списку, хранящемуся в файле. Если окно полноэкранное, скрипт не должен ничего делать и двигаться дальше. Если окно НЕ полноэкранное, скрипт должен вызвать wmctrl -r '$title' -b toggle,fullscreen
Я просматривал страницы руководства wmctrl, и, похоже, нет надежного способа определить, действительно ли окно полноэкранное (например, я мог бы вызвать, wmctrl -l -G
но если я проверю текущее разрешение экрана, это не гарантирует, что флаг полноэкранного режима установлен, а просто то, что окно имеет размер, соответствующий разрешению всего экрана)
Существует ли приемлемый способ выполнить эту условную проверку?
решение1
Ну, я немного покопался, похоже, что можно xprop
довольно легко получить состояние полноэкранного переключателя с помощью. До выполнения wmctrl -r '$title' -b toggle,fullscreen
вывод xprop -name '$title'
имеет переменную _NET_WM_STATE(ATOM) =
undefined. После выполнения эта переменная читается следующим образом:
_NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN
Используя это, я могу легко определить, открыто ли окно на весь экран, и мне не приходится гадать.