Настройка мультимедиа-клавиатуры A4Tech KD-600 в XFCE

На этой неделе поменял работу. Коллеги с прошлой работы подарили клавиатуру A4Tech KD-600. Спасибо им большое, клавиатура действительно классная. Выглядит она вот так:

Кроме того, что она чёрного цвета и того, что у неё низкие клавиши, на ней есть ещё 10 дополнительных "мультимедийных" клавиш. Наконец, у меня дошли руки настроить эти клавиши на моём домашнем компьютере под Debian GNU/Linux в XFCE.

Как оказалось, всё довольно просто. Больше времени у меня ушло на выбор программ и действий, которые нужно выполнять при нажатии мультимедийных клавиш.

Итак, перво-наперво, нужно узнать коды клавиш. Для этого запускаем программу xev, нажимаем последовательно клавиши и записываем их коды, появляющиеся в окне консоли.

Например, код клавиши PrtSc равен 111:

KeyRelease event, serial 34, synthetic NO, window 0x2e00001,
    root 0x335, subw 0x0, time 4811863, (90,272), root:(641,688),
    state 0x0, keycode 111 (keysym 0xff61, Print), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Теперь ставим пакет lineakd:

# apt-get install lineakd

В её файле конфигурации /etc/lineakd.def я не нашёл своей модели клавиатуры, поэтому добавил её описание:

[A4-KD600]
  brandname = "A4tech"
  modelname = "Multimedia keyboard KD-600"
  [KEYS]
    ScreenShot       =  111
    WebBrowser       =  178
    Email            =  236
    Search           =  229
    Previous         =  234
    Next             =  233

    MediaPlayer      =  129
    Play|Pause       =  162
    Mute             =  160
    VolumeDown       =  174
    VolumeUp         =  176

  [END KEYS]
[END A4-RFKBS26]

Теперь запускаем под обычным пользователем, настройки клавиатуры которого нужно создать, lineakd таким образом:

$ lineakd -c A4-KD600

A4-KD600 - это название секции файла /etc/lineakd.def, описывающей нашу клавиатуру.

После запуска в домашнем каталоге пользователя будет создан файл .lineakd/lineakd.conf. В этом файле можно задать команды, выполняемые при нажатии клавиш. Я задал такие команды (более ничего не трогая):

Email = /usr/bin/iceweasel https://mail.yandex.ru
MediaPlayer = /usr/bin/deadbeef --play
Mute = /usr/bin/deadbeef --stop
Next = /usr/bin/deadbeef --next
Play|Pause = /usr/bin/deadbeef --play-pause
Previous = /usr/bin/deadbeef --prev
Search = /usr/bin/iceweasel https://google.com
VolumeDown = /usr/bin/amixer set Master 1-
VolumeUp = /usr/bin/amixer set Master 1+
WebBrowser = /usr/bin/thunar /home/stupin
ScreenShot = /usr/bin/xfce4-screenshooter -w

Итак, клавиши справа сверху вниз выполняют следующие действия:

Клавиши слева сверху вниз выполняют следующие действия:

И дополнительно я назначил на клавишу PrtSc запуск программы xfce4-screenshooter для создания снимка текущего окна.

Осталось добавить lineakd в автозагрузку в XFCE. Делается это просто:

Осталось завершить сеанс XFCE и снова войти - lineakd начнёт работу в штатном режиме.

Написать автору