Skip to content

eworm-de/mpd-notification

Repository files navigation

mpd-notification

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:

Notification

This now even supports album artwork:

Notification with Artwork

Read below for the details.

Requirements

To compile and run mpd-notification you need:

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.

Build and install

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/.

Usage

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

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

Artwork

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.

License and warranty

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.

Upstream

URL: GitHub.com

Mirror: eworm.de GitLab.com