#!/bin/sh output_text () { notify-send "$1" "$2" printf "$2\n" } while getopts "hwxd:s:o:" o; do case "${o}" in w) DMENU="tofi" 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="tofi" DEFARGS="--prompt-text" SCRSH="grim" elif [ -n "$DISPLAY" ]; then DMENU="dmenu" DEFARGS="-p" SCRSH="maim" else output_text "Stuck" "Can't tell if Wayland or X, what gives?" exit 1 fi fi sleep 0.3 TEMPNAME="$(mktemp -u | xargs basename)" TEMPFILE="${TEMPNAME#tmp.}.png" sleep 0.1 "$SCRSH" $SARG "$TEMPFILE" if [ -z "$FILENAME" ]; then FILENAME="$(echo "$TEMPFILE" | $DMENU $DARGS $DEFARGS "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"