kbd-tst.py é um programa simples de teste de teclado. Ele testa a funcionalidade de todas as teclas, fornecendo feedback gráfico (bem, apenas semigráficos ASCII no terminal de texto) ao usuário, como:
Teste de teclado simples e fácil de usar, sem dependências externas ()usando apenas utilitários padrão do sistema) ...
Existe uma maneira de testar o teclado sem qualquer utilitário como este, apenas usando um editor de texto, por exemplo. Neste caso você deve lembrar quais chaves foram testadas e não perder nenhuma que não tenha sido testada. E tudo fica mais fácil com o feedback visual exibido ao vivo na tela com o kbd-test.
Aqui estão alguns típicos:
Apesar da implementação minimalista, existem os seguintes requisitos:
Nota: Devido à dependência do xinput, o kbd-tst pode ser executado apenas em sistemas do tipo Linux com Xorg
Toda a implementação do kbd-tst é centrada no 'teste xinput'. Xinput é executado como um subprocesso e os eventos de saída são analisados e visualizados como um layout de teclado na tela com informações e estatísticas adicionais. A parte visual é implementada usando sequências de escape ANSI para controlar a posição e a cor do cursor do terminal de texto. O layout do teclado é fornecido a partir de arquivos externos de layout ASCII (*.lay), como 'apple.lay' ou 'at101.lay'.
Para que o kbd-tst funcione, temos que especificar de alguma forma o seguinte:
Para exibir a ajuda de uso, podemos fornecer o parâmetro padrão '-h' ou '--help'
= Keyboard Test Program version 2017.7.28 = (c) 2017 by Robert P =
Usage: kbd-tst.py [id] [layout] [-h|--help]
kbd-tst.py [-h|--help] [layout] [id]
-h ... shows this usage help and quits
--help ... shows this usage help and quits
id ... optional keyboard device id as shown in 'xinput list' output (default user assisted autodetection)
layout ... optional keyboard ASCII layout file [*.lay] (default the first file in kbd-tst dir)
Notes:
* parameters are optional
* not providing device id will initiate a user assisted autodetection sequence requiring physical disconneting
and reconecting the keyboard under test (KUT)
* not providing the layout file is usefull if there is only single layout file in kbd-tst directory
* all unrecognized keys from layout file are shown as errors and counted as [ missing_keycodes ]
* all parameters can be supplied in arbitrary order
* in case of multiple specification the last one wins,
for example in sequence of parameters 'id1 layout1 layout2 id2' id2/layout2 pair wins
* test ends when all successfully recognized keys from layout file are tested [ to_go = 0 ]
* to end test prematurely just type phrase 'quit' (without the quotes)
Known issues:
- keys ike apple keyb VOL+/VOL-/MUTE/EJECT do not generate xinput events and therefore cannot be tested right now
- if more than one device id is found by autodetection sequence only the first one is used, which is some cases
might be incorrect. In this case provide the correct device id as a parameter (id can be found by trial and error
from 'xinput list' and verified by 'xinput test id' to show 'key press xx' and 'key release xx' events)
[ xinput double entries related bug: https://bugs.launchpad.net/ubuntu/+source/hal/+bug/277946 ]
O procedimento de teste consiste simplesmente nas etapas:
Devido à natureza dinâmica e ao suporte hot-plugging dos IDs xinput, temos que encontrar o ID correto do dispositivo KUT (keyboatd em teste). Esta é a parte mais importante e, em alguns casos, também a mais difícil do procedimento de teste.
Felizmente, existe uma modalidade integrada de autodetecção assistida pelo usuário. Isso requer a conexão do KUT (teclado em teste) se o KUT ainda não estiver conectado. Se o KUT já estiver conectado, será necessário reconectar. A função de autodetecção monitora o sistema enquanto o KUT está conectado e então pode identificar o ID do xinput automaticamente. Porém, em alguns casos, dois dispositivos são criados pelo HAL, o que impossibilita a escolha da detecção automática. Então o primeiro é selecionado por autodetecção. Se este não for o correto, você deverá fornecer o xinput id manualmente como um parâmetro de linha de comando:
> kbd-tst.py 12
O arquivo de layout é uma representação visual de arte ASCII simples do layout do teclado físico. Cada chave é representada por colchetes com rótulo de chave dentro envolto por espaços, por exemplo: uma chave com o número um é representada como [ 1 ] que visualmente se parece com uma tecla. Este arquivo de layout é carregado, analisado (erros de análise são mostrados, se houver) e também usado para feedback visual na tela. Verifique os arquivos de layout fornecidos para obter detalhes (apple.lay, at101.lay)
O nome do arquivo de layout necessário a ser carregado deve ser especificado como parâmetro:
> kbd-tst.py at101.lay
Se não houver nenhum parâmetro de arquivo de layout fornecido, o primeiro arquivo de layout no diretório será obtido. Isso é útil se houver apenas um arquivo no diretório.
A legenda do botão no arquivo de layout deve ser traduzível pelo dicionário rev_xmodmap na classe Layout. Isso permite usar rótulos de botões mais curtos para projetar corretamente o layout do teclado ASCII. Se o rótulo do botão do arquivo de layout não tiver entrada no dicionário rev_xmodmap, a mensagem de erro será exibida. O teste continuará, mas não será possível testar todas as chaves. Portanto tal execução terminará com aviso (amarelo/laranja) (veja capturas de tela abaixo com avisos sobre carregamento de layout e relatório de teste).
Sinta-se à vontade para contribuir com seus próprios arquivos de layout específicos para o diretório de layouts...
Ao final do teste é gerado o relatório de linha única com resumo:
Os seguintes arquivos:
Espero que ajude ...
versão 2017.07.27 - o lançamento inicial do GitHub em 2017
palavras-chave : teclado, teste, kbdtst, layout, kbd-tst, python, xinput, xmodmap