random-scripts/wayland-screenshot.sh

29 lines
668 B
Bash
Executable File

#!/usr/bin/zsh
local resp="$(fuzzel --index -d <<'EOF'
Whole screen
Current window
Selected area
EOF
)"
local outfile="$(date +'screenshot-%F--%H-%M-%S.png')"
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}"
;;
esac