screenshot: make canceling not show choose

This commit is contained in:
yosh 2023-09-30 21:15:05 -04:00
parent 94352621a9
commit 72b454aaa2
1 changed files with 16 additions and 13 deletions

View File

@ -41,8 +41,8 @@ choose() {
freeze() {
tmpfreeze="$(mktemp -t screenshot_freeze_XXXX.png)"
$cap "$tmpfreeze"
$freeze "$tmpfreeze" &
$freeze_cmd "$tmpfreeze"
$freeze_img "$tmpfreeze" &
freeze_pid=$!
sleep 0.1
# x11: window manager makes it fullscreen
@ -52,23 +52,25 @@ freeze() {
case "${XDG_SESSION_TYPE:-}" in
wayland)
editor="swappy -f"
freeze="swayimg -g 0,0,1920,1080"
cap="grim -l 0"
freeze_img="swayimg -g 0,0,1920,1080"
freeze_cmd="grim -l 0"
ss() {
if [ -n "$REGION" ]; then
eval 'grim '"$(slurp -f '-g "%x,%y %wx%h"')"' "$tmpfp"'
else
grim "$tmpfp"
reg="$(slurp -f '-g "%x,%y %wx%h"')" || return 1
fi
grim ${REGION:+-g "$reg"} "$tmpfp"
wl-copy < "$tmpfp"
}
;;
*)
editor="gimp -n"
freeze="nsxiv -b -N SCREENSHOT_FREEZE"
cap="shotgun"
freeze_img="nsxiv -b -N SCREENSHOT_FREEZE"
freeze_cmd="shotgun"
ss() {
shotgun ${SCREEN:+-s} ${REGION:+$(hacksaw -f '-i %i -g %g')} \
if [ -n "$REGION" ]; then
reg="$(hacksaw -f '-i %i -g %g')" || return 1
fi
shotgun ${SCREEN:+-s} ${REGION:+$reg} \
${WINDOW:+-i $(xdotool getactivewindow)} "$tmpfp"
xclip -sel clipboard -t image/png < "$tmpfp"
}
@ -81,15 +83,16 @@ trap 'clean' EXIT
SCREEN="" REGION="" WINDOW="" FREEZE="" ssopts=""
while getopts :srwf OPT; do
case "$OPT" in
s) SCREEN=1 ;; #screen
s) SCREEN=1 ;; # screen
r) REGION=1 ;; # region
w) WINDOW=1 ;; # active window
w) WINDOW=1 ;; # active window (don't use with region)
f) freeze ;; # freeze screen, only useful with -r
*) echo "invalid option: -$OPTARG" && exit 1 ;;
esac
done
ss
ec=$?
[ -n "${freeze_pid:-}" ] && kill "$freeze_pid" && freeze_pid="" # unfreeze
choose
[ "$ec" -eq 0 ] && choose