aboutsummaryrefslogtreecommitdiff
path: root/contrib
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
parent2dace6b8242189332c68d47467f59feb54e6a56a (diff)
Support cursor capture in grimshot
Refactor argument parser Bring back `sh` compatibility Default to NOTIFY=no
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/grimshot46
-rw-r--r--contrib/grimshot.113
-rw-r--r--contrib/grimshot.1.scd5
3 files changed, 43 insertions, 21 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
diff --git a/contrib/grimshot.1 b/contrib/grimshot.1
index e4baccfd..2c4c6a95 100644
--- a/contrib/grimshot.1
+++ b/contrib/grimshot.1
@@ -1,11 +1,11 @@
-.\" Generated by scdoc 1.11.1
+.\" Generated by scdoc 1.11.2
.\" Complete documentation for this program is not available as a GNU info page
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.nh
.ad l
.\" Begin generated content:
-.TH "grimshot" "1" "2021-02-23"
+.TH "grimshot" "1" "2022-03-31"
.P
.SH NAME
.P
@@ -13,7 +13,7 @@ grimshot - a helper for screenshots within sway
.P
.SH SYNOPSIS
.P
-\fBgrimshot\fR [--notify] (copy|save) [TARGET] [FILE]
+\fBgrimshot\fR [--notify] [--cursor] (copy|save) [TARGET] [FILE]
.br
\fBgrimshot\fR check
.br
@@ -26,12 +26,17 @@ grimshot - a helper for screenshots within sway
Show notifications to the user that a screenshot has been taken.\&
.P
.RE
+\fB--cursor\fR
+.RS 4
+Include cursors in the screenshot.\&
+.P
+.RE
\fBsave\fR
.RS 4
Save the screenshot into a regular file.\& Grimshot will write images
files to \fBXDG_SCREENSHOTS_DIR\fR if this is set (or defined
in \fBuser-dirs.\&dir\fR), or otherwise fall back to \fBXDG_PICTURES_DIR\fR.\&
-Set FILE to '-' to pipe the output to STDOUT.\&
+Set FILE to '\&-'\& to pipe the output to STDOUT.\&
.P
.RE
\fBcopy\fR
diff --git a/contrib/grimshot.1.scd b/contrib/grimshot.1.scd
index d2a57759..ccdce2c1 100644
--- a/contrib/grimshot.1.scd
+++ b/contrib/grimshot.1.scd
@@ -6,7 +6,7 @@ grimshot - a helper for screenshots within sway
# SYNOPSIS
-*grimshot* [--notify] (copy|save) [TARGET] [FILE]++
+*grimshot* [--notify] [--cursor] (copy|save) [TARGET] [FILE]++
*grimshot* check++
*grimshot* usage
@@ -15,6 +15,9 @@ grimshot - a helper for screenshots within sway
*--notify*
Show notifications to the user that a screenshot has been taken.
+*--cursor*
+ Include cursors in the screenshot.
+
*save*
Save the screenshot into a regular file. Grimshot will write images
files to *XDG_SCREENSHOTS_DIR* if this is set (or defined