Командная консоль для вывода окна программы перед другим?

12

Существует ли команда оболочки для вывода уже запущенной программы в gnome перед другой.

то есть:

Гедит и Наутилус запущены. Наутилус на заднем плане и Гедит на переднем плане.

Как вывести Наутилуса впереди с помощью команды оболочки?

NES
источник
1
Другое: superuser.com/questions/183680/…
karthick87

Ответы:

14
  • Установить wmctrl Установить wmctrl

    wmctrl -a <name>

  • Вы также можете использовать xdotool Установите xdotool

Примечание:

  • Более подробную информацию о xdotool можно найти здесь .
karthick87
источник
Обязательно отредактируйте свой пост так же, как я пишу свой ... :()
frabjous
Вы можете найти имя своего окна с помощью wmctrl -l. Имя - это текст после последней черты: <идентификатор окна> <идентификатор рабочего стола> <клиентский компьютер> <заголовок окна>
jorfus
8

Другой вариант - xdotool :

xdotool search --class Nautilus windowactivate

радостный
источник
2
Сбой для меня сXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
Тино
Вероятно, ошибка здесь - по моему опыту --classname или --name (если известны) иногда работают, когда --class не работает.
безумно
В моем случае можно было поднять окно, используя идентификатор xwininfoи выполнив несколько дополнительных xdotoolкоманд (которые я больше не помню). Когда я попытался автоматизировать это (избавиться от xwininfo), я получил визуальные артефакты из-за скрытых окон, которые тоже были выбраны. Я просто не нашел универсального способа правильно обращаться к произвольным окнам. После переключения на wmctrl -aвсе сразу работало без нареканий из коробки без каких-либо дополнительных настроек. Обратите внимание, что мне нравится xdotool, но, кажется, трудно поднять только правильное окно с ним.
Тино
2

При использовании 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 года. Тем не менее, он по-прежнему остается моим инструментом выбора. По личным причинам Джордан Сиссел (первоначальный автор) не так активен, как он, поэтому не стесняйтесь вносить свой вклад в проект.
Сильвен Леру
источник