Пользовательская раскладка ключей через udev / hwdb.d не работает

Справочная информация : Я получил Microsoft Natural Ergonomic Keyboard 4000, и несколько клавиш вообще не работают в Ubuntu, например клавиши F1-F10. На моей машине работает Ubuntu 14.04.2 LTS.

Мое решение : я создал файл /etc/udev/hwdb.d/61-keyboard-local.hwdb и настроил собственные правила:

keyboard:usb:v045ep00db*
 KEYBOARD_KEY_0x1008ff27=pageup
 KEYBOARD_KEY_0x1008ff26=pagedown
 KEYBOARD_KEY_0xff6a=F1
 KEYBOARD_KEY_0x1008ff6b=F5

Я получил шестнадцатеричный код через xev. Например, для ключа, который должен быть клавишей F1 , xev возвращает

KeyRelease event, serial 37, synthetic NO, window 0x4400001,
    root 0xa2, subw 0x0, time 1746028, (12,-12), root:(61,40),
    state 0x10, keycode 146 (keysym 0xff6a, Help), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

После изменения файла я запустил udevadm hwdb --update и udevadm trigger и, дополнительно перезапустил мой ноутбук.

Проблема : Соответствующие функции не назначены соответствующим клавишам.

1
задан 3 July 2015 в 10:02

1 ответ

  • Тот от xev ключевой символ keysym, здесь идея:

    /keyboard/→ scancode → / входной драйвер / → keycode → сервер/X XKB/→ keysym

    man xev говорит: xev - печатают содержание X событий

  • Так, что Вы ищете, ранние аппаратные данные из клавиатуры, которая является scancode. Это может быть найдено с помощью evtest

    man evtest evtest - Монитор события устройства ввода данных и инструментальное средство формирования запросов

    1. Установите его

      sudo apt-get install evtest
      
    2. Выполненный

      sudo evtest
      

      Вывод

      Event: time 1435906588.943349, type 4 (EV_MSC), code 4 (MSC_SCAN), value 3b
      Event: time 1435906588.943349, type 1 (EV_KEY), code 59 (KEY_F1), value 1
      

      Scancode 3b

1
ответ дан 3 July 2015 в 10:02

Другие вопросы по тегам:

Похожие вопросы: