Я уже как то писал, что мне нравиться переключать языки по хоткеям, которые назначены для каждого языка свои. В интернетах есть утилита xatk которая позволяет проделывать тоже самое но для запущенных приложений.
Сегодня Slava поправил последний баг, который мешал мне гармонично пользоваться утилитой.
xatk позволяет активировать окна по определенным хоткеям, например, если запущенно много окон то не удобно alt-tab'ом листать до нужного. Значительно удобнее нажать alt+c и переключится на Chromium или нажать alt+v и активировать gvim, причем, приложение может находиться на другом рабочем столе, xatk сам переключит на нужный рабочий стол. Также xatk умеет группировать окна по заголовкам или классам, например, можно переключаться между всеми запущенным Chromium по alt+c или, добавив уточняющую букву (назначается автоматически), переключиться на конкретное окно, имхо, дико удобно. Это если вкратце, более подробно читайте у автора.
xatk написан на python и требует для своей работы python-xlib.
Установим python-xlib под Ubuntu
sudo apt-get install python-xlib
Скачаем последнюю версию xatk
hg clone https://code.google.com/p/xatk/
Сгенерируем начальные настройки
./xatk.py -p > ~/.xatkrc
Большинство настроечных параметров детально прокомментированы, отдельно хочу отметить, что xatk сам назначает клавишу для приложений и если долго не запускать приложение, то эта буква будет переназначена другому приложению. Но есть возможность жестко задать букву для приложения, для этого надо в раздел [RULES] (файл ~/.xatkrc) добавить примерно такую запись
class.chromium-browser = !c
Добавим xatk в автозагрузку (после логина пользователя), для этого создадим текстовый файл в ~/.config/autostart/xatk.desktop
[Desktop Entry] Type=Application Exec=/home/proft/scripts/xatk/xatk.py Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[en_US]=xatk Name=xatk Comment[en_US]= Comment=
Альтернативой более общего предназначения является утилита wmctrl, которая позволяет активировать определенное приложение, а в случаи отсутствия нужного приложения его можно запустить
wmctrl -a gvim || gvim
Если заголовок окна сложный или меняется в зависимости от ситуации, то можно обратится к окну приложения с помощью его идентификатора, предварительно зная класс окна. Для получения идентификатора окна я использую простую функцию на bash, которая в качестве аргумента принимает класс окна, а возвращает идентификатор окна.
Класс окна можно узнать с помощью
wmctrl -xl
Пример активация окна запущенного приложения или запуск приложения
get_wid_by_class() { echo `wmctrl -xl | grep $1 | awk '{print $1}'` } wid=$(get_wid_by_class 'Terminator') wmctrl -i -a $wid || terminator --geometry 1350x900
Дополнительное чтиво