aboutsummaryrefslogtreecommitdiff
path: root/.local
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2021-03-04 20:03:23 +0100
committerPatrick Spek <p.spek@tyil.nl>2021-08-14 12:01:14 +0200
commit3dc4188f6cc7f4a47e4dd2a93bb62e1860ace96a (patch)
treeddbec471a36bbf68a29cc8510d000f005b265803 /.local
parent0d6f7705205343340d5020cf3c9c08f6720590ac (diff)
Include my own notify-send program
Diffstat (limited to '.local')
-rwxr-xr-x.local/bin/notify-send76
1 files changed, 76 insertions, 0 deletions
diff --git a/.local/bin/notify-send b/.local/bin/notify-send
new file mode 100755
index 0000000..960fc30
--- /dev/null
+++ b/.local/bin/notify-send
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+# This program is free software: you can redistribute it and/or modify it under
+# the terms of the GNU Affero General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
+# details.
+
+main()
+{
+ # Handle opts
+ while getopts ":a:hi:n:st:" opt
+ do
+ case "$opt" in
+ a) app=$OPTARG ;;
+ h) usage && exit 0 ;;
+ i) icon=$OPTARG ;;
+ n) id=$OPTARG ;;
+ s) silent=1 ;;
+ t) timeout=$OPTARG ;;
+ *)
+ printf "Invalid option passed: %s\n" "$OPTARG" >&2
+ ;;
+ esac
+ done
+
+ shift $(( OPTIND - 1 ))
+
+ [ $# -lt 1 ] && usage && exit 1
+
+ if [ -z "$id" ]
+ then
+ id=$(awk -v min=10 -v max=10000 'BEGIN { srand(); print int(min+rand() * (max-min+1)) }')
+ fi
+
+ gdbus call \
+ --session \
+ --dest org.freedesktop.Notifications \
+ --object-path /org/freedesktop/Notifications \
+ --method org.freedesktop.Notifications.Notify \
+ "$app" \
+ "$id" \
+ "$icon" \
+ "$1" \
+ "$2" \
+ "[]" \
+ "{}" \
+ "${timeout:-10000}" \
+ > /dev/null
+
+ if [[ -z "$silent" ]]
+ then
+ printf "%d\n" "$id"
+ fi
+
+ exit 0
+}
+
+usage()
+{
+ cat <<EOF
+Usage:
+ ${0##*/} -h
+
+Nondescript
+
+Options:
+ -h Show this help text and exit.
+EOF
+}
+
+main "$@"