O kernel vê os estranhos códigos de varredura e os descarta. Eu tentaria obter esses valores de códigos de verificação e atualizar o índice de banco de dados de hardware. Então, em suma, o plano é este:
-
obtenha os códigos da saída do dmesg - o dmesg deve produzir algo assim quando o código de tecla desconhecido é pressionado:
Unknown key pressed (translated set 2, code 0xa0 on isa0060/serio0)
a0
é o valor do código.
-
crie um arquivo de mapeamento de código-chave personalizado. Os exemplos e a ajuda estão no arquivo padrão
(/usr/lib/udev/hwdb.d/60-keyboard.hwdb
para o Arch, pode ser diferente em outras distribuições). -
atualize e acione o banco de dados de hardware executando os comandos:
> udevadm hwdb --update > udevadm trigger /dev/input/eventXX
onde eventXX
corresponde ao seu teclado (você pode obtê-lo executando evtest
). Você também pode reiniciar em vez de disparar.
Procure em Arch wiki e o arquivo de mapeamento de código-chave padrão para obter uma descrição mais detalhada (ou em sua documentação de distribuição se não é Arch).
Este é o método confiável e simples, faz o mapeamento no nível do kernel, assim funciona qualquer servidor de exibição, DE etc é.