aboutsummaryrefslogtreecommitdiff
path: root/contrib/grimshot
diff options
context:
space:
mode:
authorAlice Carroll <git@alice-carroll.pet>2022-03-31 19:28:16 +0300
committerSimon Ser <contact@emersion.fr>2022-04-21 10:41:48 +0200
commita5f01a0e04642cf035e5ae416e7bc631988e30a6 (patch)
treebded23c78c91734e17a91f80ae3ee1b6946aa848 /contrib/grimshot
parent2dace6b8242189332c68d47467f59feb54e6a56a (diff)
downloadsway-a5f01a0e04642cf035e5ae416e7bc631988e30a6.tar.xz
Support cursor capture in grimshot
Refactor argument parser Bring back `sh` compatibility Default to NOTIFY=no
Diffstat (limited to 'contrib/grimshot')
-rwxr-xr-xcontrib/grimshot46
1 files changed, 30 insertions, 16 deletions
diff --git a/contrib/grimshot b/contrib/grimshot
index 4ce31f29..d42fe9d8 100755
--- a/contrib/grimshot
+++ b/contrib/grimshot
@@ -13,18 +13,32 @@
## See `man 1 grimshot` or `grimshot usage` for further details.
getTargetDirectory() {
- test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && \
- . ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs
+ test -f "${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs" && \
+ . "${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs"
- echo ${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}
+ echo "${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}"
}
-if [ "$1" = "--notify" ]; then
- NOTIFY=yes
- shift 1
-else
- NOTIFY=no
-fi
+NOTIFY=no
+CURSOR=
+
+while [ $# -gt 0 ]; do
+ key="$1"
+
+ case $key in
+ -n|--notify)
+ NOTIFY=yes
+ shift # past argument
+ ;;
+ -c|--cursor)
+ CURSOR=yes
+ shift # past argument
+ ;;
+ *) # unknown option
+ break # done with parsing --flags
+ ;;
+ esac
+done
ACTION=${1:-usage}
SUBJECT=${2:-screen}
@@ -32,7 +46,7 @@ FILE=${3:-$(getTargetDirectory)/$(date -Ins).png}
if [ "$ACTION" != "save" ] && [ "$ACTION" != "copy" ] && [ "$ACTION" != "check" ]; then
echo "Usage:"
- echo " grimshot [--notify] (copy|save) [active|screen|output|area|window] [FILE|-]"
+ echo " grimshot [--notify] [--cursor] (copy|save) [active|screen|output|area|window] [FILE|-]"
echo " grimshot check"
echo " grimshot usage"
echo ""
@@ -67,7 +81,7 @@ notifyError() {
MESSAGE=${1:-"Error taking screenshot with grim"}
notify -u critical "$TITLE" "$MESSAGE"
else
- echo $1
+ echo "$1"
fi
}
@@ -91,12 +105,12 @@ takeScreenshot() {
FILE=$1
GEOM=$2
OUTPUT=$3
- if [ ! -z "$OUTPUT" ]; then
- grim -o "$OUTPUT" "$FILE" || die "Unable to invoke grim"
+ if [ -n "$OUTPUT" ]; then
+ grim ${CURSOR:+-c} -o "$OUTPUT" "$FILE" || die "Unable to invoke grim"
elif [ -z "$GEOM" ]; then
- grim "$FILE" || die "Unable to invoke grim"
+ grim ${CURSOR:+-c} "$FILE" || die "Unable to invoke grim"
else
- grim -g "$GEOM" "$FILE" || die "Unable to invoke grim"
+ grim ${CURSOR:+-c} -g "$GEOM" "$FILE" || die "Unable to invoke grim"
fi
}
@@ -147,7 +161,7 @@ else
TITLE="Screenshot of $SUBJECT"
MESSAGE=$(basename "$FILE")
notifyOk "$MESSAGE" "$TITLE"
- echo $FILE
+ echo "$FILE"
else
notifyError "Error taking screenshot with grim"
fi