31 lines
777 B
Bash
Executable File
31 lines
777 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# quit if another instance is already running
|
|
if [ $(pidof mpd-monitor >/dev/null) ];then
|
|
echo "mpd-monitor already running"
|
|
exit
|
|
fi
|
|
|
|
ID=$(mpc current -f %id% )
|
|
mpc idleloop |
|
|
while read -r event; do
|
|
# if a player event is not output, skip rest of loop
|
|
[ "$event" = "player" ] || continue
|
|
|
|
# get current id to compare to init id
|
|
NEW_ID=$(mpc current -f %id%)
|
|
# if a player event is output, but the track has not changed, skip rest of loop
|
|
[ "$NEW_ID" != "$ID" ] || continue
|
|
ID=$NEW_ID
|
|
|
|
dunstctl close-all
|
|
TITLE=$(mpc current -f %title%)
|
|
ARTIST=$(mpc current -f %artist%)
|
|
|
|
if [ -z "$TITLE" ]; then
|
|
notify-send "End of queue or queue empty" -i :
|
|
else
|
|
notify-send "$TITLE" "$ARTIST" -i :
|
|
fi
|
|
done
|