У меня мультимедийная клавиатура, и некоторые клавиши на ней не работают. Чтобы заставить их работать, есть руководство, но слишком уж там всё заморочено, поэтому я и связываться с этим не стал.
Тут надо сделать небольшое отступление:
Помимо клавиатуры у меня есть ещё и пульт ДУ. Так вот, наткнулся я как-то на строчку в логах Xorg:
т.е. пульт воспринимается как клавиатура. И при этом цифровая клавиатура на пульте функционирует нормально без дополнительного ПО. Но так как остальные клавиши на пульте настраиваются через lirc, то возник вопрос: а можно ли неработающие клавиши на клавиатуре заставить работать через lirc? Оказалось можно! Более того, есть даже приложение, имеющее необходимые возможности: inputlircd. Вот цитата из man'а (переведена для «наглядности»):
Редактируем файл конфигурации:
Прописывать в INPUTLIRCD_OPT можно несколько девайсов разделяя их пробелом. В моём случае получилось такое вот:
По идее, лучше указывать by-path, т.к. номер события(ивента) может поменяться при добавлении/удалении устройства ввода. Но у меня, если указывать path для клавиатуры, то нужные мне клавиши не работали. Помимо этого, у меня для клавиатуры создаются два ивента (под номерами 3 и 4), а path один. И нужные клавиши работают только в случае event4.
Запускаем:
Добавляем в автозапуск:
Теперь можно проверить работоспособность с помощью irw. Для этого просто запускаем эту утилиту в терминале:
Пробуем мультимедийные клавиши и получаем в ответ что-то вроде такого:
Теперь необходимо создать/отредактировать файл ~/.lircrc. Для приведённых выше в примере клавишь можно добавить в этот файл следующие строки:
В этом примере, клавишам KEY_ZOOMIN и KEY_ZOOMOUT назначаются комбинации Ctrl++ и Ctrl+-, принятые для увеличения и уменьшения соответственно. Передаются эти комбинации, как не трудно догадаться, текущему окну. Клавиша KEY_CALC назначается на запуск калькулятора.
Тут надо сделать небольшое отступление:
Помимо клавиатуры у меня есть ещё и пульт ДУ. Так вот, наткнулся я как-то на строчку в логах Xorg:
(II) saa7134 IR (Avermedia AVerTV St: Configuring as keyboard
т.е. пульт воспринимается как клавиатура. И при этом цифровая клавиатура на пульте функционирует нормально без дополнительного ПО. Но так как остальные клавиши на пульте настраиваются через lirc, то возник вопрос: а можно ли неработающие клавиши на клавиатуре заставить работать через lirc? Оказалось можно! Более того, есть даже приложение, имеющее необходимые возможности: inputlircd. Вот цитата из man'а (переведена для «наглядности»):
inputlircd это небольшой LIRC-демон, который считывает из файлов (устройств) /dev/input/eventX и посылает полученные коды клавишь подсоединённым LIRC-клиентам.Иными словами, это как раз то, что нам надо :).
inputlircd не нуждается в конфигурации, т.к. использует стандартнизированные имена для кодов клавишь, таких какие используеются в ядре. Многие USB пульты ДУ, предоставляющие HID-устройства, как и мультимедийные клавиатуры, должны работать прямо из коробки.
Замечание: настраивал я это всё под Gentoo.Устанавливаем:
emerge -av inputlircd
Редактируем файл конфигурации:
vim /etc/conf.d/inputlircd
Прописывать в INPUTLIRCD_OPT можно несколько девайсов разделяя их пробелом. В моём случае получилось такое вот:
INPUTLIRCD_OPTS="/dev/input/by-path/pci-0000:02:08.0-event-ir /dev/input/event4"
По идее, лучше указывать by-path, т.к. номер события(ивента) может поменяться при добавлении/удалении устройства ввода. Но у меня, если указывать path для клавиатуры, то нужные мне клавиши не работали. Помимо этого, у меня для клавиатуры создаются два ивента (под номерами 3 и 4), а path один. И нужные клавиши работают только в случае event4.
Запускаем:
/etc/init.d/inputlircd start
Добавляем в автозапуск:
rc-update add inputlircd default
Теперь можно проверить работоспособность с помощью irw. Для этого просто запускаем эту утилиту в терминале:
irw
Пробуем мультимедийные клавиши и получаем в ответ что-то вроде такого:
1a2 0 KEY_ZOOMIN event4<br/>1a3 0 KEY_ZOOMOUT event4<br/>8c 0 KEY_CALC event4<br/>
Теперь необходимо создать/отредактировать файл ~/.lircrc. Для приведённых выше в примере клавишь можно добавить в этот файл следующие строки:
begin
<br/> prog = irxevent
button = KEY_ZOOMIN
config = Key ctrl-plus CurrentWindow
end
begin
prog = irxevent
button = KEY_ZOOMOUT
config = Key ctrl-minus CurrentWindow
end
begin
prog = irexec
button = KEY_CALC
config = kcalc
end
В этом примере, клавишам KEY_ZOOMIN и KEY_ZOOMOUT назначаются комбинации Ctrl++ и Ctrl+-, принятые для увеличения и уменьшения соответственно. Передаются эти комбинации, как не трудно догадаться, текущему окну. Клавиша KEY_CALC назначается на запуск калькулятора.
Про irexec и irxevent можно почитать в man'ах или тут.Таким образом, можно заставить работать любые мультимедийные клавиши.