#!/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:-10} * 1000))" \ > /dev/null if [[ -z "$silent" ]] then printf "%d\n" "$id" fi exit 0 } usage() { cat <