#!/bin/bash # omarchy:summary=Extract text from a screenshot region with OCR # omarchy:group=capture # omarchy:examples=omarchy capture ocr # Keep hyprpicker alive until after grim captures so the screenshot sees the # frozen overlay rather than live content shifting during teardown. cleanup_freeze() { [[ -n $PID ]] && kill $PID 2>/dev/null } trap cleanup_freeze EXIT hyprpicker -r -z >/dev/null 2>&1 & PID=$! sleep .1 SELECTION=$(slurp 2>/dev/null) [[ -z $SELECTION ]] && exit 0 TEXT=$(grim -g "$SELECTION" - | tesseract stdin stdout --oem 1 --psm 6 -l "${OMARCHY_OCR_LANGS:-eng}" --dpi 300 -c preserve_interword_spaces=1 2>/dev/null) || exit 1 [[ -z $TEXT ]] && exit 1 printf "%s" "$TEXT" | wl-copy notify-send "󰴑 Copied text from selection to clipboard"