Fix some small issues with last commit

This commit is contained in:
Jacob 2023-09-12 16:53:00 +02:00
parent e0a2e9a240
commit c9ffb8ef47

View file

@ -8,6 +8,7 @@ IMAGE_SIZE="${IMAGE_SIZE:-500}"
CACHE_IMAGE="${CACHE_IMAGE:-false}"
SCREENSHOT_CONFIG_DIR="${SCREENSHOT_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/screenshot-spmenu}"
SHOW_CURSOR="${SHOW_CURSOR:-true}"
PREFER_WAYSHOT="${PREFER_WAYSHOT:-false}"
DEFAULT_SCREENSHOT_DIRECTORY="${DEFAULT_SCREENSHOT_DIRECTORY:-$HOME/Screenshots}"
FORMAT="${FORMAT:-+%T_%D}"
PREFIX="${PREFIX:-screenshot-}"
@ -23,16 +24,22 @@ screenshot_take() {
[ "$2" = "true" ] && [ "$x11" != "true" ] && POS="$(slurp)"
if [ "$x11" = "true" ] && [ -x "$(command -v maim)" ]; then
[ "$2" = "true" ] && sel_arg="-s $POS"
[ "$2" = "true" ] && sel_arg="-s"
[ "$3" = "true" ] && [ "$2" != "true" ] && cursor_arg=u
maim -s"${cursor_arg}"B > "$1" || exit 1
elif [ -x "$(command -v slurp)" ] && [ -x "$(command -v grim)" ]; then
[ "$2" = "true" ] && sel_arg="-g $POS"
grim "$sel_arg" - > "$1" || exit 1
maim -"${sel_arg}""${cursor_arg}"B > "$1" || exit 1
elif [ -x "$(command -v slurp)" ] && [ -x "$(command -v grim)" ] && [ "$PREFER_WAYSHOT" != "true" ]; then
if [ "$2" = "true" ]; then
grim -g "$POS" - > "$1" || exit 1
else
grim - > "$1" || exit 1
fi
elif [ -x "$(command -v slurp)" ] && [ -x "$(command -v wayshot)" ]; then
[ "$2" = "true" ] && sel_arg="-s $POS"
wayshot --stdout "$sel_arg" > "$1" || exit 1
if [ "$2" = "true" ]; then
wayshot --stdout -s "$POS" > "$1" || exit 1
else
wayshot --stdout > "$1" || exit 1
fi
else
printf "Failed to take screenshot: Appropriate screenshot tools not found.\n" > /dev/stderr
fi
@ -61,6 +68,7 @@ DEFAULT_SCREENSHOT_DIRECTORY="\$HOME/Screenshots" # Default screenshot path
PREFIX="screenshot-" # Screenshot prefix
FORMAT="+%T_%D" # Screenshot format
PREVIEW_IMAGE=true
PREFER_WAYSHOT=false
IMAGE_SIZE="500"
CACHE_IMAGE="false"
CONFIG
@ -70,22 +78,31 @@ print_help() {
cat << EOF
screenshot-spmenu usage
-t <time> Wait <time> seconds and then take the screenshot.
-f Take a full screen screenshot instead of selecting manually.
-s Take a screenshot, allowing the user to select a section manually.
-t -f Wait <second argument> seconds and then take a full screen screenshot.
-h View this help screen.
-t <num> In addition to -f or -s, passing -t <num> will wait <num> seconds before taking the screenshot.
No arguments will print this help.
EOF
}
check_args() {
num=0
if [ "$2" = "-t" ] && [ -n "$3" ]; then
num=$3
[ -z "${num##*[!0-9]*}" ] && printf "You must specify a valid number.\n" > /dev/stderr && exit 1
elif [ -z "$3" ] && [ "$2" = "-t" ]; then
printf "You must specify a valid number.\n" > /dev/stderr && exit 1
fi
# check arguments
case "$1" in
"") print_help; exit 0 ;;
"-f") screenshot_take "/tmp/$PREFIX$DATE" "false" "$SHOW_CURSOR" "0" ;;
"-s") screenshot_take "/tmp/$PREFIX$DATE" "true" "$SHOW_CURSOR" "0" ;;
"-f") screenshot_take "/tmp/$PREFIX$DATE" "false" "$SHOW_CURSOR" "$num" ;;
"-s") screenshot_take "/tmp/$PREFIX$DATE" "true" "$SHOW_CURSOR" "$num" ;;
*) print_help; exit 0 ;;
esac
}