Para configurar o teclado ergonômico da Microsoft 4000 , precisamos criar um arquivo de configuração que contenha a declaração do teclado e os registros para o mapeamento das teclas.
Para fazer isso, existem três tipos de informações que precisamos determinar:
- Tipo de teclado
- A tecla
scancode
que é a tecla real no teclado
- A tecla
name
para atribuir a funcionalidade desejada à tecla selecionada
Primeiro encontre o tipo de teclado:
No terminal, execute o seguinte comando:
lsusb
a saída determina o tipo de teclado:
...
Bus 004 Device 022: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
...
Aparece depois ID
. Nesse caso, é045e:00db
Segundo, encontre o scancode e o nome da chave.
Para determiná-los, usamos o evtest
programa que registra as informações do evento de um dispositivo específico no terminal:
evtest
Se você não possui o programa, instale-o executando o seguinte comando:
sudo apt-get install evtest
Ao executar o evtest
programa, obtemos a seguinte saída:
No device specified, trying to scan all of /dev/input/event* Available devices:
/dev/input/event0: Power Button
/dev/input/event1: Power Button
/dev/input/event2: PixArt USB Optical Mouse
/dev/input/event3: Microsoft Natural® Ergonomic Keyboard 4000
/dev/input/event4: Microsoft Natural® Ergonomic Keyboard 4000
/dev/input/event5: HDA Intel Front Headphone
/dev/input/event6: HDA Intel Line Out
/dev/input/event7: HDA Intel Line
/dev/input/event8: HDA Intel Rear Mic
/dev/input/event9: HDA Intel Front Mic
/dev/input/event10: HDA ATI HDMI HDMI/DP,pcm=3
Select the device event number [0-10]:
A saída é praticamente auto-explicativa, insira o número apropriado para o teclado, que aqui é o número, 3
e pressione enter:
Fazer isso, produzirá muitas informações no terminal e termina nas seguintes linhas:
...
Testing ... (interrupt to exit)
Event: time 1472203902.240594, type 17 (EV_LED), code 0 (LED_NUML), value 0
Event: time 1472203902.240594, -------------- SYN_REPORT ------------
Event: time 1472203902.281456, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70058
Event: time 1472203902.281456, type 1 (EV_KEY), code 96 (KEY_KPENTER), value 0
Event: time 1472203902.281456, -------------- SYN_REPORT ------------
Agora, com cada pressionamento de tecla no teclado, ele despeja as informações da tecla. Por exemplo, a tecla Barra ao lado de Deslocamento à direita mostra:
Event: time 1472205062.294078, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70038
Event: time 1472205062.294078, type 1 (EV_KEY), code 12 (KEY_SLASH), value 0
Event: time 1472205062.294078, -------------- SYN_REPORT ------------
A primeira linha do log contém as informações sobre a tecla real no teclado, como a scancode
que vem depois do valor. Nesse caso, é 70038
A segunda linha contém as informações de funcionalidade atribuídas, como o nome da chave. Nesse caso, é o SLASH . Examine as outras chaves para encontrar os nomes apropriados.
Então, em poucas palavras:
- Nosso tipo de teclado é: 045e: 00db
- O scancode da tecla Slash é: 70038
- O nome da chave para atribuir é SLASH
Após coletar as informações necessárias, criamos o arquivo de configuração:
sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb
Pressione i
para ativar o modo Inserir e digite o seguinte:
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_70038=minus
Salve e saia pressionando escape
e digitando :wq
e pressione enter.
Em seguida, execute os dois comandos a seguir para que a configuração entre em vigor:
sudo udevadm hwdb --update
sudo udevadm control --reload
Finalmente, desconecte o teclado e conecte-o novamente.
Algumas notas sobre o arquivo de configuração:
- O formato do arquivo deve ser exatamente como mostrado, o espaço antes do mapeamento de registros é crítico.
- Em vez de
sudoedit
usar qualquer outro editor de texto, lembre-se de seguir o formato exato do arquivo, conforme explicado acima.
- Existem dois caracteres adicionados ao tipo de teclado:
v
e p
representam fornecedor e produto. Eles também são importantes.
- O tipo de teclado está escrito em maiúsculas no arquivo de configuração. Nosso tipo de teclado era 045e: 00db, mas na configuração inserimos v045Ep00DB *
- O scancode da chave vem logo após
KEYBOARD_KEY_
- O nome da chave aparece em minúsculas no arquivo de configuração
- Você pode personalizar praticamente todas as teclas do teclado seguindo este tutorial.