#!/usr/bin/zsh local resp="$(fuzzel --index -d <<'EOF' Whole screen Current window Selected area Copy text with OCR (English) Copy text with OCR (Japanese) Select a color from the screen EOF )" local outfile="${HOME}/downloads/$(date +'screenshot-%F--%H-%M-%S.png')" # copy_with_ocr function copy_with_ocr() { local area="$(slurp 2>&1)" if [[ "${area}" != 'selection cancelled' ]]; then local text="$(grim -g "${area}" -t png /dev/fd/1 | tesseract stdin stdout -l ${1} 2>/dev/null)" wl-copy "${text}" notify-send -t 5000 "Coppied Text" "Coppied ${#text} characters" fi } case "${resp}" in 0) grim "${outfile}" ;; 1) local active_window="$(hyprctl -j activewindow)" [[ activewindow == '{}' ]] || jq -r --null-input --argjson 'window' "${active_window}" \ '$window | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -g - "${outfile}" ;; 2) local area="$(slurp 2>&1)" [[ "${area}" == 'selection cancelled' ]] || grim -g "${area}" "${outfile}" ;; 3) copy_with_ocr eng ;; 4) copy_with_ocr jpn ;; 5) local color="$(hyprpicker -f hex -n -r)" (( ${#color} == 0 )) && exit wl-copy "${color}" notify-send -t 5000 "Color Selected" "${color}" ;; esac