Notify about tracks played by mpd
This runs in background and produces notifications whenever mpd produces an event, that is new track is played or playback is paused or stopped. Notifications look like this:
This now even supports album artwork:
Read below for the details.
To compile and run mpd-notification
you need:
- systemd
- file for
libmagic
- iniparser
- libav or ffmpeg
- libnotify
- libmpdclient
- markdown (HTML documentation)
gnome-icon-theme
oradwaita-icon-theme
(or anything else that includes an icon namedaudio-x-generic
)
To use mpd-notification
you probably want mpd
, the
music player daemon itself. ;)
Some systems may require additional development packages for the libraries.
Look for libnotify-devel
, libmpdclient-devel
or similar.
Building and installing is very easy. Just run:
make
followed by:
make install
This will place an executable at /usr/bin/mpd-notification
,
documentation can be found in /usr/share/doc/mpd-notification/
.
Additionally a systemd unit file is installed to /usr/lib/systemd/user/
.
Just run mpd-notification
to run it once. A systemd user service can be
started and/or enabled with systemctl --user start mpd-notification
or systemctl --user enable mpd-notification
.
mpd-notification
accepts some arguments:
- -h: show help
- -H HOST: connect to HOST
- -m MUSIC-DIR: use MUSIC-DIR for artwork lookup
- --notification-file-workaround: write artwork to file for notification daemons that do required it
- -p PORT: connect to PORT
- -s PIXELS: scale image to a maximum size PIXELS x PIXELS pixels, keeping ratio
- -t TIMEOUT: notification timeout, TIMEOUT in seconds
- -v: verbose output
- -V: print version information
Configuration options can be read from a configuration file. mpd
tries to read ${XDG_CONFIG_HOME}/mpd-notification.conf
, then
~/.config/mpd-notification.conf
, which is expected to
look like this:
host = localhost
port = 6600
music-dir = /srv/media/music/
scale = 200
text-topic = MPD Notification
text-play = Playing <b>%t</b>\nby <i>%a</i>\nfrom <i>%A</i>
text-pause = Paused <b>%t</b>\nby <i>%a</i>\nfrom <i>%A</i>
text-stop = Stopped playback
timeout = 20
Unused options can be commented or removed completely.
The options text-play
and text-pause
support custom formatting with
these specifiers:
- %t: title
- %a: artist
- %A: album
- %d: duration
mpd
does not provide any information where it finds its music files. To make
mpd-notification
display album artwork you need to tell it where to look for
artwork. You can do that by exporting XDG_MUSIC_DIR
to your environment, by
specifying -m
or --music-dir
on the command line or by setting music-dir
in configuration file. mpd-notification
reads album artwork from mp3
files, otherwise an image file containing the artwork needs to be placed
in the same directory as the media file and named cover.jpg
,
cover.png
, folder.jpg
or folder.png
.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
URL: GitHub.com
Mirror: eworm.de GitLab.com