An open API service indexing awesome lists of open source software.

https://github.com/szclsya/mpdris2-rs

Exposing MPRIS V2.2 D-Bus interface for mpd
https://github.com/szclsya/mpdris2-rs

mpd mpris

Last synced: over 1 year ago
JSON representation

Exposing MPRIS V2.2 D-Bus interface for mpd

Awesome Lists containing this project

README

          

# mpdris2-rs

A lightweight implementation of MPD to D-Bus bridge, which exposes MPD player and playlist information onto [MPRIS2](https://specifications.freedesktop.org/mpris-spec/latest/index.html) interface so other programs can use this generic interface to retrieve MPD's playback state.

## Installation
If you are using Arch Linux, mpdris2-rs is available on [AUR](https://aur.archlinux.org/packages/mpdris2-rs).

To build, clone this repository, and run `cargo build --release`. The MSRV (minimum supported Rust version) is **1.80.1**.

If using Linux with systemd, you can use systemd user service to run mpdris2-rs. Copy the result binary (`target/release/mpdris2-rs`) to `/usr/local/bin`, add [mpdris2-rs.service](misc/mpdris2-rs.service) to `~/.config/systemd/user` and run `systemctl --user enable mpdris2-rs.service`.

## Configuration
This program reads the D-Bus session bus path from `$DBUS_SESSION_BUS_ADDRESS` and fall back to `$XDG_RUNTIME_DIR/bus` if such variable is not defined. Usually this variable should be set automatically when using desktop environments like KDE and GNOME, but if you are using a window manager or launching DE session by yourself, you might need to start your graphical session with `dbus-launch --exit-with-session $CMD`.

Currently the following command line arguments are supported:
- `--host $MPD_HOST` hostname + port, or UNIX socket path of MPD server, similar to what `mpc` takes
- if not configured, `MPD_HOST` will be used
- if `MPD_HOST` is not set either, `localhost:6600` is the default
- UNIX socket path has to be absolute, and abstract sockets (socket path that starts with `@`) are not supported
- `--no-notification` don't send desktop notification
- `-v` show debug information

## Implementation Status
- [x] Root Interface
- [x] Player control
- [x] Track list (the current playing queue)
- [ ] Playlists