Ответы:
Что ж, после sudo apt-get install wmctrl
-ing вы можете поиграть с этим скриптом bash:
#! /bin/bash
WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird
# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:
if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0
Который я нашел здесь
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrl
есть -i
опция, которая поддерживает работу с окном с его шестнадцатеричным идентификатором. И так вы можете сделать это wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai
- что бы сделать что-то подобное
При использовании xdotool
кажется трудным выдвинуть все окна для данного приложения или класса, используя только одну команду. Я получаю лучшие результаты, оборачивая его в for
цикл на уровне оболочки. Используя Bash:
for WINDOW in $(xdotool search --desktop 0 Firefox); do
xdotool windowactivate ${WINDOW}
done
Несколько замечаний:
xdotool search
будет искать шаблон (здесь Firefox
) по имени окна, классу и имени класса. Если вы хотите , чтобы ограничить область поиска, используйте соответствующие --class
, --name
или --classname
варианты.--desktop 0
Опция ограничивает поиск первого рабочего стола. Похоже, это обходной путь, позволяющий избежать XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
упоминания в некоторых комментариях.xdotool
проект остановился с 2015 года. Он по-прежнему остается моим инструментом выбора. По личным причинам Джордан Сиссел (первоначальный автор) не так активен, как в прошлом, поэтому не стесняйтесь вносить свой вклад в проект.
xdotool windowraise
переносит окно вперед, но не фокусирует окно и не переключается на рабочий стол с окном. вместоwindowactivate
этого сделаю все три.