O mapeamento de teclado personalizado via udev / hwdb.d não está funcionando

1

Background : Eu tenho o Microsoft Natural Ergonomic Keyboard 4000 e várias teclas não estão funcionando no Ubuntu, como as teclas F1-F10. Eu tenho o Ubuntu 14.04.2 LTS em execução na minha máquina.

Minha solução : Eu criei o arquivo /etc/udev/hwdb.d/61-keyboard-local.hwdb e configurei regras personalizadas:

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

Eu obtive o código hexadecimal através de xev . Por exemplo, para a chave que deve ser a tecla F1 , xev retorna

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

Depois de alterar o arquivo, executei udevadm hwdb --update e udevadm trigger e, além disso, reiniciei meu laptop.

Problema : A funcionalidade correspondente não é atribuída às respectivas chaves.

    
por Nussig 24.05.2015 / 21:39

1 resposta

1
  • Esse de xev é o símbolo de chave keysym , aqui a ideia:

    / keyboard / → scancode → / driver de entrada / → keycode → / servidor X XKB / → keysym

    man xev diz: xev - imprime o conteúdo de X eventos

  • Então, o que você está procurando são os primeiros dados de hardware do teclado, que é o scancode . Pode ser encontrado usando evtest

    man evtest evtest - Monitor de eventos do dispositivo de entrada e ferramenta de consulta

    1. Instale-o

      sudo apt-get install evtest
      
    2. Executar

      sudo evtest
      

      Saída

      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
      

      O Scancode é 3b

por user.dz 03.07.2015 / 08:59