remapeamento de teclado do udev com hwdb para teclados secundários

1

Eu tenho um laptop e salvo o seguinte em /etc/udev/hwdb.d/90-custom-keyboard.hwdb

keyboard:usb:v*p*
keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*
 KEYBOARD_KEY_1a=a
 KEYBOARD_KEY_1b=b

e execute

$ sudo udevadm hwdb --update && sudo udevadm trigger

para atualizar os mapeamentos de teclas.

Agora, este é um caso fictício que deve substituir as chaves [ e ] por a e b de qualquer teclado USB ou dmi. No entanto, eu só recebo as alterações no teclado do meu laptop, e não meus outros teclados (um teclado USB com fio e outro sem fio). Tenho certeza de que os mesmos scancodes são enviados para todos os teclados que tenho, referentes às teclas que quero remapear.

Estou usando o Arch Linux e este é o tutorial que estou analisando.

O que eu preciso fazer para tornar o remapeamento válido para todos os teclados USB que serão conectados no futuro?

    
por osolmaz 21.04.2015 / 22:44

1 resposta

1

Os scancodes para teclados usb não são o que você esperaria, eles não são a saída de showkey -s . Em vez disso, você praticamente tem que usar evtest para obter os scancodes que você precisa.

Exemplo de saída de evtest :

Event: time 1399420905.069693, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70004
Event: time 1399420905.069693, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1399420905.069693, -------------- SYN_REPORT ------------

Você quer o valor depois de MSC_SCAN , neste caso, ele nos diz que o botão mapeado para a tecla A ( KEY_A ) tem um scancode de 70004 .

    
por 24.06.2015 / 16:42

Tags