Как перехватить сочетания клавиш в GNOME

1

Я хочу написать приложение, которое перехватит некоторые последовательности клавиатур (например, в Emacs - "C-c C-c" ) и запустит некоторую функцию.

Как это сделать в GNOME?

На каком уровне я должен это делать (ядро, X11, оконный менеджер)?

  • 0
    Можете ли вы уточнить вашу цель? Вам нужны глобальные ярлыки (захваченные независимо от того, какое окно имеет фокус) или ярлыки приложений? Правильно ли я предположил, что вы хотите захватить последовательности комбинаций клавиш? («Cc Cc» имеет значение, выходящее за пределы «Выполнить действие для Cc дважды подряд»)
  • 0
    Я хочу написать приложение без окна, которое будет захватывать глобальные последовательности комбинаций (аналогично этому в EMACS, но для GNOME), например, когда я нахожусь в GEdit и запускаю "Cc Cu". Я хочу, чтобы он запускал функцию в верхнем регистре для выделенного текста. в GEdit, и когда я набираю "Cc f", он запускает функцию, которая запускает firefox.
Теги:
keyboard

1 ответ

1

Чтобы запустить коммонд на определенном нажатии клавиши, вы можете настроить это в metacity или compiz (в зависимости от того, что вы используете).

Для выполнения metacity gconf-editor перейдите к /apps/metacity/keybinding_commands, и там вы увидите command_1 и т.д. Там вы установите команду для запуска, а затем в /apps/metacity/global_keybindings вы установите соответствующие сочетания клавиш. Ключ для run_command_1 запускает команду для command_1 и т.д.

Для compiz вы хотите запустить ccsm ( "менеджер настроек конфигурации compiz" ) и использовать плагин Commands для его настройки более или менее таким же образом.

Для выполнения действия в Gedit, насколько я знаю, нет способа сделать это, если не существует существующего сочетания клавиш для команды, которую вы выдаете. В этом случае вы сможете найти приложение, которое переводит "C-c C-u" в правильный ярлык для Gedit. Но я никогда этого не делал.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню