kbd-tst.py est un simple programme de test de clavier. Il teste la fonctionnalité de toutes les touches en fournissant un retour graphique (enfin, uniquement des semi-graphiques ASCII dans le terminal texte) à l'utilisateur comme :
Test de clavier simple et convivial sans dépendances externes ()en utilisant uniquement les utilitaires système standard) ...
Il existe un moyen de tester le clavier sans aucun utilitaire comme celui-ci, simplement en utilisant un éditeur de texte par exemple. Dans ce cas, vous devez vous rappeler quelles clés ont été testées et ne manquer aucune clé non testée. Et tout est plus simple grâce au retour visuel affiché en direct sur l'écran avec kbd-test.
En voici quelques exemples typiques :
Malgré une mise en œuvre minimaliste, les exigences suivantes sont requises :
Remarque : en raison de la dépendance à Xinput, kbd-tst ne peut fonctionner que sur des systèmes de type Linux avec Xorg.
L’intégralité de l’implémentation de kbd-tst est centrée sur le « test xinput ». Xinput est exécuté en tant que sous-processus et les événements de sortie sont analysés et visualisés sous la forme d'une disposition de clavier à l'écran avec des informations et des statistiques supplémentaires. La partie visuelle est implémentée à l'aide de séquences d'échappement ANSI pour contrôler la position et la couleur du curseur du terminal de texte. La disposition du clavier est fournie à partir de fichiers de disposition ASCII externes (*.lay) tels que « apple.lay » ou « at101.lay ».
Pour que kbd-tst fonctionne, nous devons spécifier ce qui suit :
Pour afficher l'aide à l'utilisation, nous pouvons fournir le paramètre standard '-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 ]
La procédure de test comprend simplement les étapes :
En raison de la nature dynamique et de la prise en charge du branchement à chaud des identifiants xinput, nous devons trouver l'identifiant de périphérique correct de KUT (keyboatd en cours de test). C'est la partie la plus importante et dans certains cas aussi la plus difficile de la procédure de test.
Heureusement, il existe une modalité de détection automatique assistée par l'utilisateur intégrée. Cela nécessite de connecter le KUT (clavier en cours de test) si le KUT n'est pas encore connecté. Si KUT est déjà connecté, une reconnexion est requise. La fonction de détection automatique surveille le système pendant que KUT est connecté et peut ensuite identifier automatiquement l'identifiant xinput. Cependant, dans certains cas, deux appareils sont créés par HAL, ce qui rend impossible le choix de la détection automatique. Ensuite, le premier est sélectionné par autodétection. Si ce n'est pas le bon, vous devez fournir manuellement l'identifiant xinput en tant que paramètre de ligne de commande :
> kbd-tst.py 12
Le fichier de mise en page est une simple représentation visuelle artistique ASCII de la disposition du clavier physique. Chaque touche est représentée par des crochets avec l'étiquette de clé à l'intérieur entourée d'espaces, par exemple : une touche avec le numéro un est représentée par [ 1 ] qui ressemble visuellement à une touche. Ce fichier de mise en page est chargé, analysé (les erreurs d'analyse sont affichées le cas échéant) puis également utilisé pour un retour visuel à l'écran. Vérifiez les fichiers de mise en page fournis pour plus de détails (apple.lay, at101.lay)
Le nom du fichier de mise en page requis à charger doit être spécifié en paramètre :
> kbd-tst.py at101.lay
Si aucun paramètre de fichier de mise en page n'est fourni, le premier fichier de mise en page du répertoire est utilisé. Ceci est utile s'il n'y a qu'un seul fichier dans le répertoire.
La légende du bouton dans le fichier de mise en page doit pouvoir être traduite par le dictionnaire rev_xmodmap dans la classe Layout. Cela permet d'utiliser des étiquettes de boutons plus courtes pour concevoir correctement la disposition du clavier ASCII. Si l'étiquette du bouton du fichier de mise en page n'a aucune entrée dans le dictionnaire rev_xmodmap, le message d'erreur s'affiche. Le test se poursuivra, mais il n'y aura aucun moyen de tester toutes les clés. Par conséquent, une telle exécution se terminera par un avertissement (jaune/orange) (voir les captures d'écran ci-dessous avec des avertissements sur la charge de la mise en page et le rapport de test).
N'hésitez pas à contribuer vos propres fichiers de mise en page spécifiques dans le répertoire des mises en page...
A la fin du test, le rapport sur une seule ligne avec résumé est généré :
Les fichiers suivants :
J'espère que ça aide...
version 2017.07.27 - la version initiale de GitHub en 2017
mots-clés : clavier, test, kbdtst, layout, kbd-tst, python, xinput, xmodmap