У меня есть мышка, на боку которой есть пара дополнительных кнопок. Что нужно сделать, чтобы их можно было использовать в X? Итак, по шагам:
- Запускаем программу xev. Она отслеживает активность клавиатуры и мыши, выводя на экран все события типа “нажата кнопка”, “отпущена кнопка”, “перемещена мышь” и т.д.
ButtonPress event, serial 25, synthetic NO, window 0x5000001, root 0x1a6, subw 0x0, time 1238685884, (294,593), root:(295,714), state 0x10, button 8, same_screen YES
ButtonRelease event, serial 25, synthetic NO, window 0x5000001, root 0x1a6, subw 0x0, time 1238686020, (294,593), root:(295,714), state 0x10, button 8, same_screen YES
Вывод на экран идёт достаточно большой, но если сильно не двигать мышкой, вполне можно отследить, под какими номерами идут дополнительные кнопки. У меня это оказались 8 и 9.
- Далее, задействуем программу xbindkeys. Если она не установлена, устанавливаем из репозитория или исходников (берём отсюда, далее стандартно: ./configure && make && make install).
- Запускаем xbindkeys -d >~/.xbindkeysrc . Получаем дефолтный конфиг, который можно поправить под свои нужды. Обратите внимание, что нажатие control+shift + q выводит текущую конфигурацию xbindkeys. Как выяснилось, при внесении изменений перезапускать xbindkeys не нужно, он всё подхватывает “на лету” (хотя не всегда это отображает по control+shift + q 🙂 )
- BTW, закомментируйте в дефолтном конфиге строки
"xterm" c:41 + m:0x4
а то будете неприятно удивлены, когда вместо поиска по control + f (используется в большинстве броузеров, да и в некоторых других приложениях) у вас будет запускаться терминал 🙂
- Для запуска приложения по нажатию кнопки (например, xterm) добавляем в /.xbindkeysrc строки:
- Если же нужно эмулировать нажатие клавиши на клавиатуре, то понадобится программа виртуальной клавиатуры xvkbd. Я подвесил “виртуальный Enter” на 9 кнопку:
"xvkbd -text "\r"" b:9
Получилось довольно удобно: выделяем текст мышью, по нажатию на колёсико вставляем его в форму из буфера обмена X и по нажатию на доп. кнопку 8 отправляем по Enter. Так что можно не переносить правую руку на клавиатуру.
- Проверяем, что всё работает так как мы задумывали и ставим xbindkeys в автозагрузку (например, в ~/.xinitrc).
"xterm" b:8
Естественно, здесь описан только принцип, у каждого предпочтения приложений/нажатий будут свои (кстати, интересно у кого какие?).
Сделано по материалам жуйко-треда.
Аналогичный способ я описывал некоторое время назад в блоге, до того – в журнале Open source
Это ты типа попиарился? 😉