История изменений
Исправление Siado, (текущая версия) :
Пока сообразил такой рецепт:
1. Определяем наше устройство с помощью lsusb:
# Bus 008 Device 015: ID 0566:3017 Monterey International Corp.
2. Определяем HEX-значения кнопок, которые хотим переиначить:
# evtest /dev/input/by-id/usb-0566_3017-event-kbd
...
Testing ... (interrupt to exit)
Event: time 1479683706.481100, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70054
3. Создаем свой свой конфиг для udev для нашего устройства:
# vi /etc/udev/hwdb.d/70-keyboard.hwdb
keyboard:usb:v0566p3017*
KEYBOARD_KEY_700e3=prog1
KEYBOARD_KEY_70054=prog2
KEYBOARD_KEY_70055=prog3
KEYBOARD_KEY_7002a=prog4
4. Обновляем конфиги udev
# udevadm hwdb --update
Все прекрасно работает, но есть подводный камень. В документации udev, чтобы создать свою разметку кнопок для устройства нужно делать конфиг с таким содержимым:
KEYBOARD_KEY_<hex scan code>=<key code identifier>
Исходная версия Siado, :
Пока сообразил такой рецепт:
1. Определяем наше устройство с помощью lsusb:
# Bus 008 Device 015: ID 0566:3017 Monterey International Corp.
2. Определяем HEX-значения кнопок, которые хотим переиначить:
# evtest /dev/input/by-id/usb-0566_3017-event-kbd ... Testing ... (interrupt to exit) Event: time 1479683706.481100, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70054
Смотрим значение value для нажатой кнопки
3. Создаем свой свой конфиг для udev для нашего устройства:
# vi /etc/udev/hwdb.d/70-keyboard.hwdb
keyboard:usb:v0566p3017* KEYBOARD_KEY_700e3=prog1 KEYBOARD_KEY_70054=prog2 KEYBOARD_KEY_70055=prog3 KEYBOARD_KEY_7002a=prog4
4. Обновляем конфиги udev # udevadm hwdb --update
После чего переподключаем устройство к USB и идем назначать нужные клавиши через IDE-шную назначалку хоткеев.
Все прекрасно работает, но есть подводный камень. В документации udev, чтобы создать свою разметку кнопок для устройства нужно делать конфиг с таким содержимым:
KEYBOARD_KEY_<hex scan code>=<key code identifier>
Вся проблема в том, что похоже <key code identifier> ограничены в количестве, как создать свои keycode я не разобрался, нашел только те, которые у меня точно не используются - это prog[1-4], можно еще неиспользуемые поискать, но может кто подскажет как свои создавать?