Retour à l'accueil

Recherche de captures d'écran Wayland sans IA : scripts

Scripts Bash implémentent la capture de captures d'écran avec OCR dans Wayland sans IA. screen.sh enregistre PNG et .txt, ssearch.sh fournit recherche floue via tofi. Configuration pour Hyprland/Sway avec raccourcis clavier.

Wayland : recherche OCR-capture d'écran sans réseaux neuronaux
Advertisement 728x90

Recherche de captures d’écran localisée sous Wayland sans IA

Des scripts Bash permettent de capturer des captures d’écran avec extraction automatique de texte par OCR, puis de les rechercher en fonction de leur contenu — sans réseaux neuronaux ni services cloud. Conçu pour les environnements Wayland utilisant grim, slurp, tesseract et tofi. Chaque capture est sauvegardée avec un fichier .txt associé contenant le texte extrait, facilitant l’indexation et la récupération rapide.

Outils requis :

  • grim : capture d’écran
  • slurp : sélection de région
  • tesseract : moteur OCR
  • tofi : interface de recherche
  • wl-clipboard et cliphist : gestion du presse-papiers
  • notify-send : notifications de bureau

screen.sh : script de capture et OCR

Ce script capture une région sélectionnée à l’écran, la sauvegarde au format PNG, et exécute en arrière-plan tesseract pour générer un fichier texte complémentaire. Prend en charge la reconnaissance de texte en russe et en anglais.

Google AdInline article slot
#!/bin/bash
set -euo pipefail

SCREENSHOT_DIR="${SCREENSHOT_DIR:-$HOME/Pictures/screens}"
OCR_LANG="${OCR_LANG:-rus+eng}"
SLURP_ARGS=(-d -b 1B1F2866 -c 89b4faff -w 1)
GRIM_ARGS=(-t png -l 3)

die()  { notify-send "screen.sh" "$1" -i dialog-error -t 4000; exit 1; }
need() { for cmd in " $@"; do command -v "$cmd" &>/dev/null || die "missing: $cmd"; done; }

Fonction OCR avec nettoyage des résultats :

run_ocr() {
    tesseract "$1" - -l "$OCR_LANG" --psm 3 2>/dev/null \
        | grep -v '^[[:space:]]*$' \
        | sed 's/[[:space:]]\+/ /g; s/^ //; s/ $//'
}

save_sidecar() {
    run_ocr "$1" > "${1%.png}.txt" 2>/dev/null || true
}

L’OCR s’exécute en arrière-plan : command -v tesseract &>/dev/null && { save_sidecar "$FILEPATH" & disown; }. Les notifications sont interactives — elles proposent d’ouvrir le dossier, d’éditionner dans swappy ou de copier le texte dans le presse-papiers.

Le mode --ocr copie directement le texte extrait sans sauvegarder de fichier.

Google AdInline article slot

ssearch.sh : script d’indexation et de recherche

Supporte trois modes :

  • --index : traiter les fichiers PNG existants sans fichier .txt associé
  • --list : afficher un TSV avec chemin, horodatage et extrait de texte
  • Mode principal : recherche floue via tofi

Logique d’indexation :

if [[ "${1:-}" == "--index" ]]; then
    while IFS= read -r png; do
        txt="${png%.png}.txt"
        [[ -f "$txt" ]] && continue
        run_ocr "$png" > "$txt" 2>/dev/null || true
    done < <(find "$SCREENSHOT_DIR" -name "screenshot-*.png" -type f | sort)
fi

Génération de liste :

Google AdInline article slot
if [[ "${1:-}" == "--list" ]]; then
    while IFS= read -r txt; do
        png="${txt%.txt}.png"
        [[ -f "$png" ]] || continue
        base=$(basename "$txt" .txt)
        dt="${base#screenshot-}"
        stamp="${dt:0:10} ${dt:11:2}:${dt:13:2}:${dt:15:2}"
        snippet=$(head -3 "$txt" | tr '\n' ' ' | cut -c1-120)
        printf '%s\t%s\t%s\n' "$png" "$stamp" "$snippet"
    done < <(find "$SCREENSHOT_DIR" -name "screenshot-*.txt" -type f | sort -r)
fi

La recherche est transmise à tofi avec correspondance floue et largeur fixée à 1100px. Les résultats sélectionnés copient le texte dans wl-clipboard et ouvrent l’image via xdg-open.

Installation et intégration

Installation sur Arch :

sudo pacman -S grim slurp tesseract tesseract-data-rus wl-clipboard libnotify swappy

Rendre les scripts exécutables et lier des raccourcis dans Hyprland :

bind = , Print, exec, ~/wayland/scripts/screen.sh
bind = SHIFT, Print, exec, ~/wayland/scripts/screen.sh --ocr
bind = SUPER, F, exec, ~/wayland/scripts/ssearch.sh

Pour les anciennes captures : ./ssearch.sh --index.

Points clés

  • L’OCR s’exécute de manière asynchrone — jamais de blocage de l’interface ; PSM 3 est idéal pour les écrans à contenu mixte.
  • tofi gère habilement les imprécisions de l’OCR grâce à sa correspondance floue.
  • Les fichiers sidecar toujours créés — même vides — pour une indexation fiable.
  • Aucune dépendance IA ou cloud ; uniquement des outils Unix purs.
  • Adapté à Wayland + tofi ; adapter à GNOME/KDE nécessite de remplacer le lanceur.

Limites et améliorations

Tesseract peine avec les petits caractères dans les thèmes sombres — tester les paramètres PSM/OEM. La recherche est basée uniquement sur des chaînes de caractères, sans compréhension sémantique. Pour les captures tournées, configurer un cron ou systemd-timer pour supprimer les fichiers plus vieux que N jours.

— Editorial Team

Advertisement 728x90

Lire ensuite