Пользовательская горячая клавиша/ярлык для открытий/принесенного для противостояния на приложение

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

Скажите, что я открываю определенную программу с горячей клавишей, и когда я нажимаю ту горячую клавишу снова, окно программы выявлено.

Я хочу сделать это на Ubuntu 9.04.

Возможно, с D-шиной? Какие-либо эксперты?

Обновление: вот то, что я закончил с тем, в случае, если это помогает кому-то:

#!/bin/bash
if [ -f "/tmp/myterm.pid" ]; then
  WID=`cat /tmp/myterm.pid`
  xdotool windowactivate $WID
  if [ "$?" != "0" ]; then
    WID=""
  fi
else
  WID=`xdotool search --title "UNIQUE TITLE" | head -1`
fi

if [ "$WID" == "" ]; then
  /usr/bin/gnome-terminal --window-with-profile=MYPROFILE "$@"
  WID=`xdotool search --title "UNIQUE TITLE" | head -1`
  echo $WID > /tmp/myterm.pid
else
  xdotool windowactivate $WID
fi

Конечно, это может быть упрощено, но я нет bash человек выдающихся способностей. Кроме того, чтобы мой пример работал, я создал пользовательский профиль в Терминале, который применяет уникальный заголовок к окну, таким образом, это может быть найдено позже. Возможности бесконечны!

10
задан 01.08.2009, 03:26

2 ответа

wmctrl программа, что Вы ищете (sudo apt-get install wmctrl). Можно использовать wmctrl -a "AppTitle" команда для выявления приложения. wmctrl -l перечислит все доступные окна, таким образом, должно быть легко записать сценарий оболочки, который проверяет, выполняет ли Ваша программа и или запускает его или выявляет его. Затем можно просто связать это с сочетанием клавиш.

Сначала сохраните следующий сценарий где-нибудь, я буду использовать /home/jtb/code/bringToFront. Требуется два аргумента, первое - то, что Вы ввели бы на терминале для запуска программы, второй является подстрока заголовка окна программы. Если не будет никакой постоянной уникальной строки в заголовке затем, то необходимо будет сделать немного больше работы для нахождения окна программы.

#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]  
then
    wmctrl -a "$2"
else
    $1 &
fi
  1. Со сценарием в Вашем текущем каталоге, выполненном chmod +x bringToFront сделать исполняемый файл сценария. Затем удостоверьтесь, что это работает; для запущения/фокусирования Firefox, Вы могли работать ./bringToFront firefox "Mozilla Firefox".

  2. Теперь мы должны связать сочетание клавиш. Выполненный gconf-editor и переместитесь по структуре папок налево к /apps/metacity/keybinding_commands.

  3. Дважды щелкните по первому command с пустым значением, вероятно command_1. Введите полный путь к сценарию и обеспечьте эти два параметра, например. /home/jtb/code/bringToFront firefox Firefox.

  4. От панели слева, выбрать global_keybindings, следующая папка. Найдите run запись, соответствующая команде, Вы просто определили, вероятно run_command_1. Дважды щелкните по нему и введите сочетание клавиш, которое Вы хотите использовать. Поместите модификаторы в угловые скобки, например. <Ctrl><Alt>F.

Теперь Управление + Высокий звук + F выявит Ваше окно Firefox или запустит его, если это не будет уже работать.

10
ответ дан 07.12.2019, 12:52

спасибо за это. Я использую измененную версию его для создания сценария ярлыка окна, который также поддерживает циклическое повторение через несколько экземпляров. Если Вам интересно:

http://somanov.wordpress.com/2009/12/02/window-shortcuts-for-linux-desktops/

аплодисменты :)

0
ответ дан 07.12.2019, 12:52

Теги

Похожие вопросы