#!/bin/bash capture_region() { wayfreeze & FREEZE_PID=$! sleep 0.1 REGION=$(slurp -d -c "007DFFFF" -w 1) if [ $? -eq 0 ]; then sleep .3 grim -g "$REGION" - | wl-copy caelestia shell toaster success 'Screenshot saved' 'Screenshot of region saved in clipboard' image else caelestia shell toaster error 'Screenshot failed' 'Failed to save screenshot' image fi kill $FREEZE_PID } capture_window() { REGION=$(hyprctl activewindow -j | jq -r '"\(.at | join(",")) \(.size | join("x"))"') grim -g "$REGION" if [ $? -eq 0 ]; then caelestia shell toaster success 'Screenshot saved' 'Screenshot of window in ~/Pictures' image else caelestia shell toaster error 'Screenshot failed' 'Failed to save screenshot' image fi } capture_screen() { SCREEN=$(hyprctl activeworkspace -j | jq -r ".monitor") grim -o "$SCREEN" - | wl-copy if [ $? -eq 0 ]; then caelestia shell toaster success 'Screenshot saved' 'Screenshot of monitor saved in clipboard' image else caelestia shell toaster error 'Screenshot failed' 'Failed to save screenshot' image fi } subcommand=$1 case $subcommand in "r" | "region") capture_region ;; "w" | "window") capture_window ;; "s" | "screen") capture_screen ;; *) ;; esac