summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzachir <zachir@librem.one>2023-02-27 01:08:44 -0600
committerzachir <zachir@librem.one>2023-02-27 01:08:44 -0600
commit20d778c95e7ea5f41e12f1b2f2d8d7a3c8de4abe (patch)
tree3ceed59a2ece14f471a80910ec3fb1149af6da75
parent3a046a65669db0b81e185113fb85ce401937a287 (diff)
add scrshot utility
-rwxr-xr-xscrshot50
1 files changed, 50 insertions, 0 deletions
diff --git a/scrshot b/scrshot
new file mode 100755
index 0000000..e270320
--- /dev/null
+++ b/scrshot
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+output_text () {
+ notify-send "$1" "$2"
+ printf "$2\n"
+}
+
+while getopts "hwxd:s:o:" o; do case "${o}" in
+ w)
+ DMENU="bemenu"
+ SCRSH="grim"
+ ;;
+ x)
+ DMENU="dmenu"
+ SCRSH="maim"
+ ;;
+ d) DARG="$OPTARG $DARG" ;;
+ s) SARG="$OPTARG $SARG" ;;
+ o) FILENAME="$OPTARG" ;;
+esac done
+
+if [ -z "$DMENU" ]; then
+ if [ -n "$WAYLAND_DISPLAY" ]; then
+ DMENU="bemenu"
+ SCRSH="grim"
+ elif [ -n "$DISPLAY" ]; then
+ DMENU="dmenu"
+ SCRSH="maim"
+ else
+ output_text "Stuck" "Can't tell if Wayland or X, what gives?"
+ exit 1
+ fi
+fi
+
+TEMPNAME="$(mktemp -u | xargs basename)"
+TEMPFILE="${TEMPNAME#tmp.}.png"
+
+"$SCRSH" $SARG "$TEMPFILE"
+
+if [ -z "$FILENAME" ]; then
+ FILENAME="$(echo "$TEMPFILE" | $DMENU $DARGS -p "What to name the file?")"
+ if [ -z "$FILENAME" ]; then
+ rm -rf "$TEMPFILE"
+ output_text "Deleted" "No filename selected, file deleted!"
+ exit
+ fi
+fi
+
+mv "$TEMPFILE" "$FILENAME"
+