aboutsummaryrefslogtreecommitdiff
path: root/snapshot
diff options
context:
space:
mode:
Diffstat (limited to 'snapshot')
-rwxr-xr-xsnapshot37
1 files changed, 37 insertions, 0 deletions
diff --git a/snapshot b/snapshot
new file mode 100755
index 0000000..380051a
--- /dev/null
+++ b/snapshot
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# snapshot: Take a screenshot using ImageMagick. Assumes `dunst` daemon is
+# running when sending notifications.
+
+set -eu
+
+SCREENSHOT_DIR="$HOME/.local/screenshots"
+SCREENSHOT_NAME="$SCREENSHOT_DIR/$(date '+%F_%R-%S' | sed 's/:/-/g').png"
+
+_end() {
+ dunstify "Screenshot captured:\n$SCREENSHOT_NAME"
+ display "$SCREENSHOT_NAME"
+ [ -t 1 ] && echo "$SCREENSHOT_NAME"
+ exit 0
+}
+
+region() {
+ import "$SCREENSHOT_NAME"
+ _end
+}
+
+full() {
+ import -window root "$SCREENSHOT_NAME"
+ _end
+}
+
+[ -d "$SCREENSHOT_DIR" ] || mkdir -p "$SCREENSHOT_DIR"
+
+[ "$#" -eq 0 ] && region
+
+while getopts ":f" arg; do
+ case "$arg" in
+ f) full ;;
+ *) printf "Invalid option: -%s\n" "$OPTARG" >&2 && exit 1 ;;
+ esac
+done