27 lines
946 B
Shell
Executable file
27 lines
946 B
Shell
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
mkdir -p "$HOME/Pictures/Screenshots"
|
|
filepath="$HOME/Pictures/Screenshots/$(date +%Y%m%d%H%M%S).png"
|
|
|
|
case "${1:-fullscreen}" in
|
|
region)
|
|
g=$(slurp -d); [ -z "$g" ] && exit 1
|
|
grim -g "$g" - | wl-copy ;;
|
|
window)
|
|
g=$(mmsg get focusing-client | jq -r '"\(.x),\(.y) \(.width)x\(.height)"')
|
|
[ -z "$g" ] && exit 1
|
|
grim -g "$g" - | wl-copy ;;
|
|
freeze)
|
|
p=$(mktemp -u).fifo; mkfifo "$p"
|
|
wayfreeze --after-freeze-timeout 100 --after-freeze-cmd "echo > $p" & wp=$!
|
|
read -r < "$p"; grim - | wl-copy
|
|
kill "$wp" 2>/dev/null; rm -f "$p" ;;
|
|
freeze-region)
|
|
p=$(mktemp -u).fifo; mkfifo "$p"
|
|
wayfreeze --after-freeze-timeout 100 --after-freeze-cmd "echo > $p" & wp=$!
|
|
read -r < "$p"; g=$(slurp -d)
|
|
if [ -z "$g" ]; then kill "$wp" 2>/dev/null; rm -f "$p"; exit 1; fi
|
|
grim -g "$g" - | wl-copy
|
|
kill "$wp" 2>/dev/null; rm -f "$p" ;;
|
|
*) grim - | wl-copy;;
|
|
esac
|