diff --git a/modules/home-manager/audio/cmus/files/notify.sh b/modules/home-manager/audio/cmus/files/notify.sh index d11fbff..dfc62db 100755 --- a/modules/home-manager/audio/cmus/files/notify.sh +++ b/modules/home-manager/audio/cmus/files/notify.sh @@ -9,36 +9,59 @@ process_args() { done } -main() { - filename=${file#*/} - image=${file%/*}/cover.jpg - [ -f "$image" ] && options="$options -i \"${image}\"" +# +escape(){ + local string + string=$1 + string=${string//"<"/"<"} + string=${string//">"/">"} + string=${string//"&"/"&"} + printf "%s" "$string" +} + +main() { + options=( --app-name=cmus --transient -u low) + + filename=${file##*/} + image=${file%/*}/cover.jpg + + if [[ -f "$image" ]]; then + options+=( -i "${image}" ) + fi + + ## Get title or filename title=${title:-$filename} if [[ ${#title} -gt 25 ]]; then title="${title:0:24}…" fi + title="$title" if [ -n "$artist" ] then if [[ ${#artist} -gt 22 ]]; then - artist="by ${artist:0:21}…" - fi - fi - - if [ -n "$album" ] - then - if [[ ${#album} -gt 19 ]]; then - album="${album:0:18}…" + artist="${artist:0:21}…" fi + printf -v l_artist "by %s" "$(escape "$artist")" fi if [ -n "$date" ] then date="${date%%-*}" fi - printf -v body "%s\n%-19s %s" "${artist:-}" "${album:-}" "${date:-}" - notify-send --app-name=cmus -i "$image" "$title" "$body" + + # Get Album + if [ -n "$album" ] + then + if [[ ${#album} -gt 19 ]]; then + album="${album:0:19}…" + fi + printf -v l_album "on %-20s %s" "$(escape "$album")" "${date:-}" + fi + + 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" } process_args "$@" diff --git a/modules/home-manager/audio/cmus/files/rc b/modules/home-manager/audio/cmus/files/rc index ea71c79..2c30746 100644 --- a/modules/home-manager/audio/cmus/files/rc +++ b/modules/home-manager/audio/cmus/files/rc @@ -52,5 +52,5 @@ set color_win_inactive_sel_fg=20 set color_win_dir=default set status_display_program=~/.config/cmus/notify.sh - +set format_current= %{?stream??󰈣} %t %{?a?by 󰠃 %a} %{?l?on 󰀥 %l}%= %y add -l ~/medias/music