Décoder un QRCode en capturant une région d'un écran
Pré-requis
- installez le paquet zbar-tools et zenity
zbar-tools permet de scanner une image. zenity permet de faire apparaître une fenêtre graphique. - Avoir un logiciel de capture d'écran (normalement déjà installé sur votre ordinateur).
Les logiciels de capture d'écran qui sont pris en charge sont :
- Spectacle (KDE)
Télécharger le script
Télécharger le script ci-dessous
- qr-scan-local.sh
#!/bin/bash zerr() { zenity --error --text="$1" } TMP_FILE="" suppr_tempfile=0 delete_tmpfile() { [[ "$suppr_tempfile" -eq 1 ]] && rm "$TMP_FILE" } if ! command -v zbarimg > /dev/null; then zerr "La commande zbarimg n'existe pas\n\ninstaller l'utilitaire via : sudo apt install zbar-tools" exit 1 fi if [[ ! -f "$1" ]]; then TMP_FILE="$(mktemp)" rm -f "$TMP_FILE" # lower case ENV_DESKTOP="${XDG_CURRENT_DESKTOP,,}" case "$ENV_DESKTOP" in *gnome) gnome-screenshot -a -f "$TMP_FILE";; xfce) xfce4-screenshooter -r -s "$TMP_FILE";; *kde*) spectacle -r -o "$TMP_FILE";; *) zerr "Le script ne peut pas connaître quel outil de capture d'écran utiliser à partir de l'environnement de bureau $ENV_DESKTOP" exit 1;; esac # le fichier n'a pas été créé if [[ ! -f "$TMP_FILE" ]]; then exit 0 fi suppr_tempfile=1 set "$TMP_FILE" fi #echo "fichier \"$1\"" if ! RES=$(zbarimg --raw "$1" 2> /dev/null); then delete_tmpfile zerr "Aucun QRCode détécté" & exit 0 fi delete_tmpfile zenity --info --no-markup --text="$RES" --ellipsize &
Placer-le dans votre répertoire à exécutables
Pour le placer dans votre $HOME/bin
,
lancez cette commande
mkdir -p "$HOME/bin" ; mv "$(xdg-user-dir DOWNLOAD)/qr-scan-local.sh" "$HOME/bin/"; chmod +x "$HOME/bin/qr-scan-local.sh"; echo "$HOME/bin/qr-scan-local.sh"
Copier la dernière ligne qui correspond au chemin absolu vers le script.
Créé un raccourci-lanceur
En utilisant menulibre ou alacarte, créez un raccourci-lanceur avec comme valeur de Commande
le chemin absolu vers le script (voir section au-dessus).
Contributeurs : Amiralgaby