Как перехватывать нажатия клавиш в среде Linux

Как перехватывать нажатия клавиш в среде Linux

Мне нужно, чтобы код на языке C выполнялся при нажатии определенных клавиш в среде Linux «Desktop».

Какие существуют способы регистрации на такое мероприятие и как это сделать?

Мне написать ISR для этого? Мне нужна точная часть Linux, откуда я могу получить этот вызов.

Какая часть ОС обрабатывает подобные вещи? Является ли это частью среды рабочего стола, например GNOME, или частью какой-то службы?

решение1

Я бы попытался использоватьxbindkeysдля запуска команды/скрипта при нажатии определенных клавиш.

Для начала вы можете xbindkeysсгенерировать шаблон файла конфигурации следующим образом:

$ xbindkeys --defaults > /home/saml/.xbindkeysrc

Затем откройте полученный файл конфигурации в любом редакторе и добавьте строку следующего вида:

"nautilus --browser /home/saml/projects/path/to/some/dir"
 Mod4+shift + q

Затем завершите работу и перезапустите ее xbindkeys, чтобы перезагрузить изменения в файле конфигурации:

$ killall xbindkeys
$ xbindkeys

Теперь, когда это запущено, всякий раз, когда я нажимаю Mod+ Shift+, QNautilus будет открываться с соответствующей открытой папкой.

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

Рекомендации

решение2

В вашей рабочей среде может быть утилита для настройки сочетаний клавиш.

Оболочка Gnome 3

Перейдите System Settings > Keyboard > Shortcutsи создайте Launcherярлык[1].

КДЕ

Идти к System Settings[2] > Shortcuts and Gestures > Global Shortcuts[3] и назначить пользовательскую комбинацию клавиш, или

Назначьте ярлык KDE для запуска приложений[4]. Для использования этого приложения вам может потребоваться файл .desktop.

  1. Разблокируйте виджеты.
  2. Щелкните правой кнопкой мыши в панели запуска и выберите «Изменить приложения...».
  3. Найдите приложение, которому вы хотите назначить ярлык.

Другой

В противном случае вы можете использовать xbindkeys. Arch Wiki имеетxbindkeysруководствостоит прочтения.

[1]https://wiki.ubuntu.com/Keybindings
[2]http://docs.kde.org/stable/en/kde-workspace/systemsettings/using-kapp.html#starting
[3]http://docs.kde.org/stable/en/kde-workspace/systemsettings/general.html
[4]https://askubuntu.com/questions/90567/quickly-launch-any-app-in-kde-with-a-shortcut

Связанный контент