Como remapear uma tecla F em um teclado específico?

2

Eu tenho um periférico anexado que na verdade não é um teclado, mas todos os seus botões estão sendo tratados como teclas F, todos eles enviam o mesmo código de código e teclado como chaves F padrão (baseado em showkey [-s] e xev). Eu quero mudar o código de tecla do periférico sem efetuar as teclas padrão, então eu usei o udev para remapear os scancodes com base no fabricante.

O problema que estou tendo agora é obter as chaves para remapear usando o udev. Eu criei /usr/lib/udev/hwdb.d/90-custom-keys.hwdb para teste (a versão de teste tem como objetivo alterar todos os teclados, que eu ajustarei quando conseguir algo funcionando) que se pareça com:

keyboard:usb:v*p*
keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*
keyboard:*
 KEYBOARD_KEY_1b=playcd (this should map F1 to keycode 200 like I want)

O periférico é USB, as seções adicionadas são tentadas para obter algum tipo de mudança de comportamento, e cada uma delas adicionada após a anterior não ajudou.

Além disso, o udev parece estar sendo executado com base em ps aux | grep udev .

Eu preciso ser capaz de alterar os códigos de tecla que este periférico envia, que serão manipulados por outro aplicativo (que requer entradas de código de tecla específicas), e eu ainda quero manter os botões padrão. Como posso conseguir isso?

Ambiente usado:

os: RHEL 7
udev ver: 208
arch: 86_64
    
por Centimane 05.06.2015 / 20:12

1 resposta

1

Meu problema era colocar o scancode errado, a regra não deveria ser

keyboard_key_1b=playcd

mas

keyboard_key_7003a=playcd

Você realmente precisa do evtest para isso (os 'scancodes' fornecidos pelo showkey -s não são o que você está procurando)

    
por 24.06.2015 / 15:14