У меня есть скрипт bash, который перемещает мои окна с левого экрана на правый экран при настройке двух экранов. В настоящее время он работает циклически по идентификаторам окон, которые задаются, xdotool search --onlyvisible --maxdepth 2 --class ""
а затем перемещает их вправо на ширину экрана. Это уже работает ... если только рассматриваемое окно не будет развернуто или свернуто.
Так что нужен способ проверить текущее состояние окна. Я нашел ответ, который предоставляет способ добавлять и удалять эти биты, но где можно проверить, установлены ли они уже?
Если это невозможно сделать через xdotool , должна быть возможность повторно использовать идентификатор окна, предоставленный командой, упомянутой выше.
command-line
window-manager
xdotool
wmctrl
xprop
v010dya
источник
источник
devilspie
какая из них предназначена именно для работы с окнами. Так что не нужно перекодировать, просто настройтеОтветы:
Получить информацию о состоянии окна
Вы можете получить информацию (и многое другое) из команды:
Чтобы получить то, что вы конкретно ищете:
Вывод будет выглядеть так:
в окне, которое развернуто (h + v) и свернуто одновременно, или просто
(или вообще не выводить), если это не так.
Больше удовольствия
Конечно, используя разные языки, вы можете использовать Wnck , как в приведенном ниже фрагменте python. (фрагмент из окна-тасовщика ). Фрагмент выводит список, показывающий имя окна + либо
True
илиFalse
(свернуто).Вывод выглядит так:
NB
xprop
будет обрабатывать как шестнадцатеричные (как вывод, например,wmctrl
), так и десятичные (как вывод, например,xdotool
) идентификаторы, например, либо использовать:или
Методы не будут работать на Wayland!
источник
_NET_WM_STATE(ATOM)
оно, как показано в ответе, не отображается с пустым значением. Вместо этого он вообще не выводится.