grimshot: Add a separate flag for notifications

Make notifications a separate flag. Personally, I trigger grimshot
myself most of the time (via sway bindsym) rather than by some external
means, so I don't need to be notified of it happening.

However, keep a flag with this functionality there for those scenarios
there it's necessary to inform the user.

Also print the file location when saving the screenshot.
This commit is contained in:
Hugo Osvaldo Barrera 2020-05-01 11:45:39 +02:00 committed by Drew DeVault
parent 1191a41fb2
commit b10b6b552b
1 changed files with 18 additions and 4 deletions

View File

@ -26,13 +26,20 @@ getTargetDirectory() {
echo ${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}
}
if [ $1 == "--notify" ]; then
NOTIFY=yes
shift 1
else
NOTIFY=no
fi
ACTION=${1:-usage}
SUBJECT=${2:-screen}
FILE=${3:-$(getTargetDirectory)/$(date -Ins).png}
if [ "$ACTION" != "save" ] && [ "$ACTION" != "copy" ] && [ "$ACTION" != "check" ]; then
echo "Usage:"
echo " grimshot (copy|save) [active|screen|output|area|window] [FILE]"
echo " grimshot [--notify] (copy|save) [active|screen|output|area|window] [FILE]"
echo " grimshot check"
echo " grimshot usage"
echo ""
@ -55,14 +62,20 @@ notify() {
notify-send -t 3000 -a grimshot "$@"
}
notifyOk() {
[ $NOTIFY = "no" ] && return
TITLE=${2:-"Screenshot"}
MESSAGE=${1:-"OK"}
notify "$TITLE" "$MESSAGE"
}
notifyError() {
TITLE=${2:-"Screenshot"}
MESSAGE=${1:-"Error taking screenshot with grim"}
notify -u critical "$TITLE" "$MESSAGE"
if [ $NOTIFY = "yes" ]; then
TITLE=${2:-"Screenshot"}
MESSAGE=${1:-"Error taking screenshot with grim"}
notify -u critical "$TITLE" "$MESSAGE"
else
echo $1
fi
}
die() {
@ -137,6 +150,7 @@ else
TITLE="Screenshot of $SUBJECT"
MESSAGE=$(basename "$FILE")
notifyOk "$MESSAGE" "$TITLE"
echo $FILE
else
notifyError "Error taking screenshot with grim"
fi