Table des matières

Décoder un QRCode en capturant une région d'un écran

Pré-requis

Les logiciels de capture d'écran qui sont pris en charge sont :

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