diff options
author | Patrick Spek <p.spek@tyil.nl> | 2021-03-04 20:03:23 +0100 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2021-08-14 12:01:14 +0200 |
commit | 3dc4188f6cc7f4a47e4dd2a93bb62e1860ace96a (patch) | |
tree | ddbec471a36bbf68a29cc8510d000f005b265803 /.local | |
parent | 0d6f7705205343340d5020cf3c9c08f6720590ac (diff) |
Include my own notify-send program
Diffstat (limited to '.local')
-rwxr-xr-x | .local/bin/notify-send | 76 |
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 "$@" |