1. Определение кодов клавиш.
Для
начала нам надо узнать сканкоды необходимых нам клавиш для этого
запускаем xbindkeys с ключом -k и жмём кнопку, код которой нужно
определить, вот мой вывод команды для кнопки “браузер”:
#xbindkeys -k
Press combination of keys or/and click under the window. You can use one of the two lines after "NoCommand" in $HOME/.xbindkeysrc to bind a key. "NoCommand"
m:0x0 + c:178
NoSymbol
[2]+ Done xbindkeys
Код
который нам необходим я выделил красным цветом. Эту процедуру следует
повторить с каждой клавишей, которую Вы хотите настроить, сканкоды
советую записывать. Может случиться так, что xbindkeys никак не
отреагирует на клавишу, это значит кнопке не присвоен keycode, у меня
таковой оказалась Acer Arkade Deluxe, в таком случае нужно смотреть
вывод команды dmesg
Нас интересуют примерно такие строки:
atkbd.c: Unknown key pressed (translated set 2, code 0x92 on isa0060/serio0). atkbd.c: Use 'setkeycodes e012 ' to make it known. atkbd.c: Unknown key released (translated set 2, code 0x92 on isa0060/serio0). atkbd.c: Use 'setkeycodes e012 ' to make it known.
Нужное
нам значение я выделил красным. Теперь нужно присвоить keycode нашей
клавише. Для начала придётся найти свободный keycode. Для этого выходим
из графического режима, нажав ctrl+alt+F2 (чтобы вернуться назад в
граф. режим надо будет нажать alt+F7), логинимся и выполняем команду:
getkeycodes
Вот её примерный вывод:
Plain scancodes xx (hex) versus keycodes (dec) for 1-83 (0x01-0x53) scancode equals keycode
0x50: 80 81 82 83 99 0 86 87 0x58: 88 117 0 0 95 183 184 185 0x60: 0 0 0 0 0 0 0 0 0x68: 0 0 0 0 0 0 0 0 0x70: 93 0 0 89 0 0 85 91 0x78: 90 92 0 94 0 124 121 0
Escaped scancodes e0 xx (hex)
e0 00: 0 0 0 0 0 0 0 0 e0 08: 0 0 0 0 0 0 0 0 e0 10: 165 0 0 0 0 0 0 0 e0 18: 0 163 0 0 96 97 0 0 e0 20: 113 140 164 0 166 138 141 236 e0 28: 0 227 255 0 0 0 114 0 e0 30: 115 0 172 435 434 98 255 99 e0 38: 100 0 0 0 0 0 0 0 e0 40: 0 0 0 0 0 119 119 102 e0 48: 103 104 0 105 112 106 118 107 e0 50: 108 109 110 111 237 238 238 237 e0 58: 237 225 0 125 126 127 116 142 e0 60: 0 0 0 143 0 217 156 173 e0 68: 128 159 158 157 155 226 225 224 e0 70: 0 192 192 149 148 425 0 0 e0 78: 464 193 0 0 0 0 0 0
Ищем
код, которого ещё не используется(другими словами его просто нет в
списке) и запоминаем. Или же поиск можно немного автоматизировать, в
том же консольном режиме вводим getkeycodes | grep [keycode который хотим присвоить]
Если
поиск ничего не вывел, значит этот keycode свободен и его можно
использовать под нашу клавишу. Для того чтобы присвоить кнопке значение
keycode нужно добавить строку
setkeycodes e012 161
в
скрипт /etc/init.d/boot.local (для дистрибутива OpenSuse, в других
дистрах это может быть скрипт /etc/rc.d/rc.local или
/etc/conf.d/local.start), где e012 – код добытый нами из вывода dmesg 161 – собсбвенно keycode который мы присваем нашей клавише.
После этого лучше перезагрузиться. После перезагрузки наша клавиша должна нормально определяться через xbindkeys -k
2. Настраиваем кнопки под наши нужды.
Вся
настройка xbindkeys осуществляется через файл .xbindkeysrc, находящийся
в вашей домашней директории. Привожу кусок своего конфига с настройкой
мультимедийных клавиш:
"firefox" #запустить Firefox m:0x0 + c:178 #сканкод кнопки “Браузер” "kmail" #запустить kmail m:0x2000 + c:236 #сканкод клавиши “Почта” "konqueror" #запустить файловый менеджер konqueror m:0x0 + c:159 #сканкод клавиши Emprovering "gmplayer" #запустить Mplayer m:0x0 + c:204 #сканкод клавиши Acer Arcade "amixer sset Master 5+" #увеличить звук на 5 делений m:0x0 + c:174 #сканкод колеса громкости вверх "amixer sset Master 5-" #уменьшить звук на 5 делений m:0x0 + c:176 #сканкод колеса громкости вниз
Как
Вы, я думаю, заметили в кавычках можно указать любую команду Линукс
доступную вашему пользователю, а ниже сканкод кнопки на которую Вы
хотите “повесить” исполнение этой команды.
3. Добавляем xbindkeys в автозагрузку.
Для
того чтобы всё работало после каждого входа в иксы нужно добавить
xbindkeys в автозагрузку. Опять таки способов множество, лично я просто
добавил строку
xbindkeys & в файл .xinitrc, он должен находиться в Вашей домашней директории, если его там нет, то советую скопировать:
cp /etc/X11/xinit/xinitrc ~/.xinitrc (актуально для OpenSuse, в других дистрибутивах придётся воспользоваться поиском).
Вот и всё. Естественно этим способом можно настроить любую кнопку на клавиатуре, а не только описаные в статье.
Источник: http://acerfans.ru/faq/1145-nastrojjka-multimedijjnyk-klavish-na-noutbukakh.html |