|
|
|
@ -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=no
|
|
|
|
|
CURSOR=
|
|
|
|
|
|
|
|
|
|
while [ $# -gt 0 ]; do
|
|
|
|
|
key="$1"
|
|
|
|
|
|
|
|
|
|
case $key in
|
|
|
|
|
-n|--notify)
|
|
|
|
|
NOTIFY=yes
|
|
|
|
|
shift 1
|
|
|
|
|
else
|
|
|
|
|
NOTIFY=no
|
|
|
|
|
fi
|
|
|
|
|
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
|
|
|
|
|