Utiliser un lecteur de code à barre avec le bon layout
J’ai du utiliser un lecteur code à barre sous Debian dernièrement. Cependant, n’ayant pas la doc de ce lecteur, il m’a fallu configurer le layout car celui ci était configuré en US. Ce qui fait que tous les codes lus étaient traduit selon le layout us, pas pratique. Vous trouverez donc dans cet article la solution pour que ce lecteur de code à barre fonctionne correctement et envoi bien le code tel qu’il est écrit. Nous allons utiliser les commandes xinput
et setxkbmap
.
Tout d’abord nous allons chercher l’entrée du lecteur :
$ xinput --list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ DELL DELL USB Laser Mouse id=11 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ Dell Dell Multimedia Pro Keyboard id=9 [slave keyboard (3)] ↳ Dell Dell Multimedia Pro Keyboard id=10 [slave keyboard (3)] ↳ Dell WMI hotkeys id=12 [slave keyboard (3)] ↳ Optoelectronics Co., Ltd. USB Code Reader id=8 [slave keyboard (3)]
Notre lecteur est identifié comme une clavier ayant comme identifiant 8.
Il nous faut donc maintenant mettre le bon layout (agencement en français).
$ setxkbmap -device 8 -layout us
Vous trouverez la liste des layouts possibles et utilisables sur la page de man de keyboard-config.
$ man xkeyboard-config
Cette configuration étant réinitialisée à chaque fois que vous rallumer votre ordinateur. Je vous conseille d’utiliser ce script :
#! /bin/sh ID=\`/usr/bin/xinput list | grep "USB Code Reader" | awk -Fid= '{print $2}' | awk -F\\\t '{print $1}'\` if [ -n "$ID" ]; then /usr/bin/setxkbmap -device $ID -layout us; fi
Ah oui, une autre solution est de retrouver la documentation de configuration du lecteur et de bien le configurer d’avance.
Commentaires
anatole M
Merci pour l’astuce car même avec la documentation je n’arrivais pas à faire fonctionner le lecteur de code barre.
Si j’ai bien suivi pour le script je devrais changer le nom de l’appareil en « Barcode Reader » pour qu’il soit reconnu à chaque fois. Mais je le mets où ce script ?
Cordialement.
Anthony
Bonjour,
Pour ma part ce genre de script, je les mets dans un dossier bin de mon Home soit /home/perhonen/bin.
Ensuite ne pas oublier de le rendre exécutable (chmod -x monscript) et de l’appeler dans votre .bashrc.
Anthony