Utiliser un lecteur de code à barre avec le bon layout

Outils


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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.