Zurück zur Startseite

Wayland Bildschirmfoto-Suche ohne KI: Skripte

Bash-Skripte implementieren Bildschirmfoto-Aufnahme mit OCR in Wayland ohne KI. screen.sh speichert PNG und .txt, ssearch.sh bietet Fuzzy-Suche über tofi. Einrichtung für Hyprland/Sway mit Kurztasten.

Wayland: OCR-Bildschirmfoto-Suche ohne neuronale Netze
Advertisement 728x90

Bildschirmfoto-Suche in Wayland ohne KI

Bash-Skripte ermöglichen die Aufnahme von Bildschirmfotos mit automatischer OCR-Textextraktion und inhaltsbasiertem Suchen – ohne neuronale Netze oder Cloud-Dienste. Speziell für Wayland-Umgebungen entwickelt, nutzt es grim, slurp, tesseract und tofi. Jedes Foto wird zusammen mit einer begleitenden .txt-Datei gespeichert, die den extrahierten Text enthält und für schnelle Indexierung und Abfrage nutzbar ist.

Benötigte Tools:

  • grim: Bildschirmaufnahme
  • slurp: Bereichsauswahl
  • tesseract: OCR-Engine
  • tofi: Suchinterface
  • wl-clipboard und cliphist: Clipboard-Verwaltung
  • notify-send: Desktop-Benachrichtigungen

screen.sh: Erfassungs- und OCR-Skript

Dieses Skript erfasst einen ausgewählten Bildschirmbereich, speichert ihn als PNG und führt tesseract asynchron aus, um eine Text-Datei zu generieren. Unterstützt sowohl russische als auch englische Spracherkennung.

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; }

OCR-Funktion mit Ergebnisbereinigung:

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
}

Die OCR läuft im Hintergrund: command -v tesseract &>/dev/null && { save_sidecar "$FILEPATH" & disown; }. Benachrichtigungen sind interaktiv – bieten Optionen zum Öffnen des Ordners, Bearbeiten in swappy oder Kopieren des Texts in die Zwischenablage.

Der --ocr-Modus kopiert den extrahierten Text direkt, ohne Datei zu speichern.

Google AdInline article slot

ssearch.sh: Indexierungs- und Suchskript

Unterstützt drei Modi:

  • --index: Verarbeitet vorhandene PNG-Dateien ohne .txt-Seitendatei
  • --list: Gibt TSV mit Pfad, Zeitstempel und Textausschnitt aus
  • Hauptmodus: Fuzzy-Suche über tofi

Indexierungslogik:

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

Listenerzeugung:

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

Suche leitet in tofi mit Fuzzy-Matching und 1100px Breite weiter. Ausgewählte Ergebnisse kopieren den Text in wl-clipboard und öffnen das Bild über xdg-open.

Einrichtung & Integration

Installation unter Arch:

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

Skripte ausführbar machen und Tastenkombinationen in Hyprland binden:

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

Für ältere Fotos: ./ssearch.sh --index.

Wichtige Punkte

  • OCR läuft asynchron – blockiert niemals die Oberfläche; PSM 3 ist ideal für gemischte Inhalte.
  • tofis Fuzzy-Match verträgt OCR-Unschärfen gut.
  • Seitendateien werden immer erstellt – auch leer – für zuverlässige Indexierung.
  • Keine KI- oder Cloud-Abhängigkeiten; nur reiner Unix-Tooling.
  • Speziell für Wayland + tofi optimiert; Anpassung für GNOME/KDE erfordert Launcher-Ersatz.

Einschränkungen & Verbesserungsvorschläge

Tesseract hat Schwierigkeiten mit kleinen Schriftarten bei dunklen Themen – testen Sie PSM/OEM-Einstellungen. Die Suche basiert rein auf Zeichenketten, keine semantische Erkenntnis. Für verdrehte Fotos: Cron oder systemd-timer einrichten, um Dateien älter als N Tage zu löschen.

— Editorial Team

Advertisement 728x90

Weiterlesen