#!/usr/bin/env bash # Sample shell script for using notify-send with matterhorn This script # works on Linux only. It depends on the 'notify-send' command. # # See docs/notification-scripts.md for details on the notification # script API used with this script. # Positional parameters passed to this script by Matterhorn: mentioned="${1?}" sender="${2?}" message="${3?}" # Script options # notify_URGENCIES # # The first word is the urgency for items where you are not mentioned. # The second word is the urgency for items where you are mentioned. # Use "none" to not be notified; otherwise use "low", "normal", or # "critical". notify_URGENCIES="normal normal" # The desktop notification category notify_CATEGORY="im.received" # Notification header notify_HEAD="Matterhorn message from $sender" # Escape backslashes in the message message="${message//\\/\\\\}" # Escape double quotes in the message message="${message//\"/\\\"}" # Notification body notify_BODY="$message" getUrgencyHelper() { if [ "$mentioned" == "1" ] then echo "$1" else if [ "$mentioned" == "2" ] then echo "$2" else echo "Error: mentioned value '$mentioned' unexpected" > /dev/stderr exit 1 fi fi } getUrgency() { # We are using arguments as a poor man's bash array for portability # shellcheck disable=SC2086 getUrgencyHelper $notify_URGENCIES } urgency=$(getUrgency) if [ ! -z "$urgency" ] then test "$urgency" = "none" || notify-send -u "$urgency" -c "$notify_CATEGORY" -- "$notify_HEAD" "$notify_BODY" fi