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
- Host: GitHub
- URL: https://github.com/szclsya/mpdris2-rs
- Owner: szclsya
- License: gpl-3.0
- Created: 2022-06-05T05:54:53.000Z (almost 4 years ago)
- Default Branch: trunk
- Last Pushed: 2025-02-22T02:11:21.000Z (over 1 year ago)
- Last Synced: 2025-02-24T13:56:35.462Z (over 1 year ago)
- Topics: mpd, mpris
- Language: Rust
- Homepage:
- Size: 191 KB
- Stars: 31
- Watchers: 5
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: COPYING
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