У меня есть определенная рабочая среда с десятками открытых Windows. Как я могу вывести на передний план окно с известным именем / названием программно или с помощью командной строки?
14
У меня есть определенная рабочая среда с десятками открытых Windows. Как я могу вывести на передний план окно с известным именем / названием программно или с помощью командной строки?
xdotool windowraise
переносит окно вперед, но не фокусирует окно и не переключается на рабочий стол с окном. вместоwindowactivate
этого сделаю все три.Что ж, после
sudo apt-get install wmctrl
-ing вы можете поиграть с этим скриптом bash:Который я нашел здесь
источник
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrl
есть-i
опция, которая поддерживает работу с окном с его шестнадцатеричным идентификатором. И так вы можете сделать этоwmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai
- что бы сделать что-то подобноеПри использовании
xdotool
кажется трудным выдвинуть все окна для данного приложения или класса, используя только одну команду. Я получаю лучшие результаты, оборачивая его вfor
цикл на уровне оболочки. Используя Bash:Несколько замечаний:
xdotool search
будет искать шаблон (здесьFirefox
) по имени окна, классу и имени класса. Если вы хотите , чтобы ограничить область поиска, используйте соответствующие--class
,--name
или--classname
варианты.--desktop 0
Опция ограничивает поиск первого рабочего стола. Похоже, это обходной путь, позволяющий избежатьXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
упоминания в некоторых комментариях.xdotool
проект остановился с 2015 года. Он по-прежнему остается моим инструментом выбора. По личным причинам Джордан Сиссел (первоначальный автор) не так активен, как в прошлом, поэтому не стесняйтесь вносить свой вклад в проект.Это копия ответа, который я разместил на AskUbuntu , но я думаю, что он не зависит от Linux, поэтому он может быть полезен и здесь.
источник