diff --git a/modules/home-manager/audio/cmus/files/notify.sh b/modules/home-manager/audio/cmus/files/notify.sh
index a01bcfd..2116792 100755
--- a/modules/home-manager/audio/cmus/files/notify.sh
+++ b/modules/home-manager/audio/cmus/files/notify.sh
@@ -1,16 +1,16 @@
#!/usr/bin/env bash
# shellcheck disable=SC2154
+NOTIFICATION_PROGRAM='mako
+'
process_args() {
- while [ "$#" -ge 2 ]
- do
+ while [ "$#" -ge 2 ]; do
printf -v "$1" "%s" "$2"
shift
shift
done
}
-#
-escape(){
+escape() {
local string
string=$1
string=${string//"<"/"<"}
@@ -19,19 +19,26 @@ escape(){
printf "%s" "$string"
}
+# Just quit this application if our notification program does not exist
+# With this notification will not be displayed on my work laptop. Avoid
+# notification pollution!
+check_notification_program() {
+ if ! command -v "$NOTIFICATION_PROGRAM"; then
+ exit 0
+ fi
+}
main() {
- options=( --app-name=cmus --transient -u low)
-
+ options=(--app-name=cmus --transient -u low)
filename=${file##*/}
path=${file%/*}
if [[ -f "${path}/cover.png" ]]; then
- options+=( -i "${path}/cover.png" )
+ options+=(-i "${path}/cover.png")
fi
if [[ -f "${path}/cover.jpg" ]]; then
- options+=( -i "${path}/cover.jpg" )
+ options+=(-i "${path}/cover.jpg")
fi
## Get title or filename
@@ -41,22 +48,19 @@ main() {
fi
title="$title"
- if [ -n "$artist" ]
- then
+ if [ -n "$artist" ]; then
if [[ ${#artist} -gt 22 ]]; then
artist="${artist:0:21}…"
fi
printf -v l_artist "by %s" "$(escape "$artist")"
fi
- if [ -n "$date" ]
- then
+ if [ -n "$date" ]; then
date="${date%%-*}"
fi
# Get Album
- if [ -n "$album" ]
- then
+ if [ -n "$album" ]; then
if [[ ${#album} -gt 19 ]]; then
album="${album:0:19}…"
fi
@@ -65,8 +69,9 @@ main() {
printf -v l_intro "cmus:%s" "$(escape "$status")"
printf -v body "%s\n" "${l_intro:-}" "${title:-}" "${l_artist:-}" "${l_album:-}"
- notify-send "${options[@]}" "unseless" "$body"
+ notify-send "${options[@]}" "useless" "$body"
}
+check_notification_program
process_args "$@"
main