[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
|
||||
# for details on the notification script API.
|
||||
#
|
||||
# activityNotifyCommand = /path/to/notify
|
||||
activityNotifyCommand = ~/.config/matterhorn/notify.sh
|
||||
|
||||
# Background activity display: Matterhorn communicates with the
|
||||
# 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