[matterhorn] add notifications
This commit is contained in:
parent
d083cc1e94
commit
d671725397
2 changed files with 70 additions and 1 deletions
|
@ -150,7 +150,7 @@ tokencmd: secret-tool lookup matterhorn token
|
||||||
# an example Linux notification script. See docs/notification-scripts.md
|
# an example Linux notification script. See docs/notification-scripts.md
|
||||||
# for details on the notification script API.
|
# for details on the notification script API.
|
||||||
#
|
#
|
||||||
# activityNotifyCommand = /path/to/notify
|
activityNotifyCommand = ~/.config/matterhorn/notify.sh
|
||||||
|
|
||||||
# Background activity display: Matterhorn communicates with the
|
# Background activity display: Matterhorn communicates with the
|
||||||
# Mattermost server using asynchronous background thread processing.
|
# Mattermost server using asynchronous background thread processing.
|
||||||
|
|
69
matterhorn/.config/matterhorn/notify.sh
Executable file
69
matterhorn/.config/matterhorn/notify.sh
Executable file
|
@ -0,0 +1,69 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# 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 critical"
|
||||||
|
|
||||||
|
# The desktop notification category
|
||||||
|
notify_CATEGORY="im.received"
|
||||||
|
|
||||||
|
# Notification header
|
||||||
|
notify_HEAD="Message from $sender"
|
||||||
|
|
||||||
|
# Notification APP
|
||||||
|
notify_APPNAME="Matterhorn"
|
||||||
|
|
||||||
|
# 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 [ -n "$urgency" ]
|
||||||
|
then
|
||||||
|
test "$urgency" = "none" ||
|
||||||
|
notify-send --urgency "$urgency" \
|
||||||
|
--category "$notify_CATEGORY" \
|
||||||
|
--app-name "$notify_APPNAME" \
|
||||||
|
-- "$notify_HEAD" "$notify_BODY"
|
||||||
|
|
||||||
|
mpv "/usr/share/sounds/freedesktop/stereo/message.oga" >/dev/null 2>&1 &
|
||||||
|
mpv "/usr/share/sounds/freedesktop/stereo/message-new-instant.oga" >/dev/null 2>&1 &
|
||||||
|
fi
|
Loading…
Add table
Reference in a new issue