Как программно переключиться на конкретное окно в compiz? - PullRequest
20 голосов
/ 04 января 2010

Есть ли команда, чтобы сообщить compiz, что мы хотим вывести ее вперед и установить фокус на конкретное окно? Как мы должны определить окно в этой команде?

Причиной , стоящей за этим вопросом, является следующий вариант использования:

Предположим, у нас есть вики, чтобы вести заметки о том, что мы узнаем. Было бы очень удобно иметь сочетание клавиш, чтобы вывести окно браузера с нашей вики-страницей вперед и сразу же начать печатать, затем с помощью другого сочетания клавиш перейти в приложение, над которым мы работали до

Я знаю, что ALT + TAB переключается между двумя последними используемыми окнами, но не может поддерживать более сложные комбинации приложений. Например, браузер + Eclipse + Wiki

Если есть команда, подобная описанной, можно легко добавить к ней ярлык из интерфейса KDE или GNOME

Ответы [ 5 ]

21 голосов
/ 06 января 2010

То, что вы ищете, это wmctrl . Например, добавьте сочетание клавиш для вызова такой команды, как

wmctrl -Fa 'Wiki - Google Chrome'

, чтобы поднять и активировать окно с таким названием.

Существуют различные способы выбора окна по заголовку, идентификатору и т. Д. См. man wmctrl . Список окон можно получить, запустив

$ wmctrl -l

Я не пробовал это с compiz, но wmctrl должен работать для любого EWMH-совместимого оконного менеджера.

4 голосов
/ 06 января 2011

Это сработало для меня с Compiz:

xdotool windowactivate `xdotool search --onlyvisible --class firefox`
2 голосов
/ 05 января 2010

Вы хотите отправить клиентское сообщение _NET_ACTIVE_WINDOW в корневое окно. Это предупредит любого совместимого оконного менеджера (включая Compiz), что вы запрашиваете активацию определенного окна.

См. EWMH spec , в частности, раздел в _NET_ACTIVE_WINDOW.

Обратите внимание, что в зависимости от конфигурации оконного менеджера он может отказать в удовлетворении вашего запроса или дать пользователю возможность проигнорировать его.

1 голос
/ 05 января 2010

Я нашел на этой веб-странице , в которой есть пример исходной программы, которую вы можете скомпилировать, и которая выведет окно X вперед.

Ключом является функция X11 XRaiseWindow.

Я полагаю, было бы довольно легко написать небольшую программу и либо написать скрипт-обертку, либо просто сделать саму программу надежной, а затем настроить Compiz для ее привязки к глобальному сочетанию клавиш.

0 голосов
/ 14 июля 2015

Плагин Widget может делать то, что вы описываете.

  • Настройте плагин Widget, чтобы пометить нужные окна как виджеты (например, путем сопоставления с заголовком окна или ролью).
  • Настройте плагин Window Rules для того, чтобы окна виджетов присутствовали на всех рабочих пространствах (закрепились) и пропускали панель задач.

См. http://wiki.compiz.org/Plugins/Widget

...