Initial commit
This commit is contained in:
commit
66547ca113
2 changed files with 51 additions and 0 deletions
26
README.org
Normal file
26
README.org
Normal file
|
@ -0,0 +1,26 @@
|
|||
#+title: MPD Notify
|
||||
|
||||
A simple script that listens to an =mpc idleloop= and sends a notification whenever the playing state of MPD changes. This tries to show the album art along with the notification as long as there is one of these files present in the album's directory:
|
||||
|
||||
- =cover.jpg=
|
||||
- =cover.jpeg=
|
||||
- =cover.png=
|
||||
- =folder.jpg=
|
||||
- =folder.jpeg=
|
||||
- =folder.png=
|
||||
|
||||
* Requirements
|
||||
|
||||
This script needs [[https://musicpd.org/clients/mpc/][mpc]], [[https://gitlab.gnome.org/GNOME/libnotify][libnotify]] and [[https://www.zsh.org/][zsh]].
|
||||
|
||||
* Installation
|
||||
|
||||
Put the =mpd-notify= script anywhere in your =$PATH=.
|
||||
|
||||
* Usage
|
||||
|
||||
Run the =mpd-notify= script without arguments. This script assumes that your MPD music directory is =$HOME/music= and any file path it gets from MPD will be relative to that.
|
||||
|
||||
Since this is meant to keep running in the background, you probably want it to do so by calling it as:
|
||||
|
||||
: mpd-notify &
|
25
mpd-notify
Executable file
25
mpd-notify
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/env zsh
|
||||
mpc idleloop player | while read _
|
||||
do
|
||||
song=$(mpc current)
|
||||
state=$(mpc status %state%)
|
||||
directory="$HOME/music/$(dirname "$(mpc --format "%file%" current)")"
|
||||
icon=""
|
||||
message="$state"
|
||||
if [[ -e "$directory/cover.jpg" ]]; then icon="$directory/cover.jpg";
|
||||
elif [[ -e "$directory/cover.jpeg" ]]; then icon="$directory/cover.jpeg";
|
||||
elif [[ -e "$directory/cover.png" ]]; then icon="$directory/cover.png";
|
||||
elif [[ -e "$directory/folder.jpg" ]]; then icon="$directory/folder.jpg";
|
||||
elif [[ -e "$directory/folder.jpeg" ]]; then icon="$directory/folder.jpeg";
|
||||
elif [[ -e "$directory/folder.png" ]]; then icon="$directory/folder.png";
|
||||
fi
|
||||
case "$state" in
|
||||
paused )
|
||||
message="Paused ..."
|
||||
;;
|
||||
playing )
|
||||
message="Now playing ..."
|
||||
;;
|
||||
esac
|
||||
notify-send --icon "$icon" "$song" "$message"
|
||||
done
|
Loading…
Reference in a new issue