#!/bin/bash

SAVE_DIR="$HOME/Pictures/Screenshots"
mkdir -p "$SAVE_DIR"
FILENAME="$SAVE_DIR/screenshot_$(date +"%Y-%m-%d_%H-%M-%S").png"

capture_full_screen() {
    grim "$FILENAME"
}

capture_selection() {
    region=$(slurp)
    grim -g "$region" "$FILENAME"
}

capture_window() {
    window_geometry=$(swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"')
    grim -g "$window_geometry" "$FILENAME"
}

open_editor() {
    # Open the screenshot in GIMP, ImageMagick's display command, or any preferred editor
    photoflare "$FILENAME" &
}

# Capture the screenshot based on the option passed
case "$1" in
    --full)
        capture_full_screen
        ;;
    --select)
        capture_selection
        ;;
    --window)
        capture_window
        ;;
    *)
        echo "Invalid option. Usage: screengrab [--full|--select|--window] [--edit]"
        exit 1
        ;;
esac

# Copy to clipboard and notify
wl-copy < "$FILENAME" && notify-send "Screengrab" "Screenshot copied to clipboard"

# If --edit flag is passed, open the screenshot in the editor
if [[ "$2" == "--edit" ]]; then
    open_editor
fi

