GitPedia
lazykern

lazykern/mprisence

A powerful Discord Rich Presence for MPRIS media players

30 Releases
Latest: 1w ago
v1.7.0Latest
lazykernlazykern·1w ago·June 17, 2026
GitHub

New Feature: Web player support

  • <img width="488" height="209" alt="image" src="https://github.com/user-attachments/assets/256e5aaf-89cc-4720-b414-36ed07a5efc1" />
  • <img width="490" height="195" alt="image" src="https://github.com/user-attachments/assets/82a6f838-7c53-418b-84f7-6e6d754f7a3c" />
  • mprisence now show the rich presence according to the web player you are playing on any browsers (that support mpris)
  • Supported sites: YouTube Music, Apple Music, Bandcamp, Tidal, SoundCloud, Qobuz, Amazon Music, Deezer, Yandex Music, YouTube (ignored by default).

📦 Install the web player bridge for more rich web player metadata (optional)

  • 2. Run `mprisence web install` to register the native messaging host with your browser.
  • 3. Run `mprisence web doctor` if anything goes wrong

📦 [Example web player config](https://github.com/lazykern/mprisence/blob/15085d5abc8211b1e976f894ee36bf0f314e8ec9/config/config.default.toml#L232)

  • ```toml
  • [web_player.youtube_music]
  • match_pattern = "music.youtube.com"
  • name = "YouTube Music"
  • title_suffix = " | YouTube Music"
  • app_id = "1125082278339559505" # shared with [player."*youtube_music*"]
  • icon = "https://raw.githubusercontent.com/lazykern/mprisence/main/assets/icons/web-player/youtube-music.png"
  • ignore = false
  • + 7 more

📦 Also in this release

  • fix: discord socket detection method by @1Step621 in https://github.com/lazykern/mprisence/pull/85
  • `discovery_interval` was renamed to `fallback_poll_interval`.
  • Unknown players are hidden by default. Add `[player.<name>]` ignore = false to bring one back.
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.6.0...v1.7.0
v1.6.0
lazykernlazykern·1mo ago·May 17, 2026
GitHub

📋 Changes

  • Player
  • Replace polling with D-Bus event monitoring
  • Config
  • Add `event_driven` (default: `true`; set `false` to use polling)
  • Remove deprecated `clear_on_pause`
  • Default cover providers now prefer Catbox with Litterbox
  • Rich Presence
  • Fall back from `name` to `state` for the bundled app ID
v1.5.2
lazykernlazykern·2mo ago·April 20, 2026
GitHub

📦 Summary

  • Upgrade lofty from 0.23.3 to 0.24.0.
v1.5.1
lazykernlazykern·3mo ago·March 28, 2026
GitHub

📦 Template

  • Add `icontains` for case-insensitive substring matching in Handlebars templates alongside the existing `contains` and regex helpers

📦 Examples

  • ```handlebars
  • {{#if (contains player "Spotify")}}exact case{{/if}}
  • {{#if (icontains player "spotify")}}case-insensitive{{/if}}
  • {{#if (regex_is_match pattern="(?i)spotify" on=player)}}regex case-insensitive{{/if}}
  • ```
v1.5.0
lazykernlazykern·3mo ago·March 28, 2026
GitHub

📦 Template

  • Add `contains`, plus `regex_is_match` and `regex_captures` from [`handlebars_misc_helpers`](https://github.com/davidB/handlebars_misc_helpers), for substring and regex-based matching in presence templates

📦 Dependencies

  • Update core Rust dependencies: `clap` `4.5` -> `4.6.0`, `env_logger` `0.11.8` -> `0.11.10`, `smol_str` `0.3.4` -> `0.3.6`, `tokio` `1.48.0` -> `1.50.0`, `futures` `0.3` -> `0.3.32`, and `interprocess` `2.2.3` -> `2.4.0`
  • Upgrade `toml` `0.9.12` -> `1.1.0`, `reqwest` `0.12.24` -> `0.13.2`, and `lofty` `0.22.3` -> `0.23.3`
v1.4.5
lazykernlazykern·3mo ago·March 22, 2026
GitHub

📦 Config

  • Add Gelly support (`bus name: io.m51.Gelly`)
  • Enable `allow_streaming = true` for hosted music server players (Feishin, Supersonic, Gelly)
v1.4.4
lazykernlazykern·3mo ago·March 22, 2026
GitHub

📦 Cover Art

  • Treat authenticated/self-hosted API image URLs (Subsonic/OpenSubsonic/Navidrome/Jellyfin patterns) as non-direct and re-host them through configured providers instead of caching them as direct.
  • Invalidate cached direct entries that are no longer eligible under the stricter URL policy and fall back to provider-based hosting.
v1.4.3
lazykernlazykern·3mo ago·March 14, 2026
GitHub

📋 What's Changed

  • Fix
  • Handle `playerctld`'s `NoActivePlayer` D-Bus error without leaving stale Discord presence behind ([#76](https://github.com/lazykern/mprisence/issues/76))
  • Deduplicate proxy and real MPRIS bus names by player identity so the same player is only tracked once ([#77](https://github.com/lazykern/mprisence/issues/77))
v1.4.2
lazykernlazykern·3mo ago·March 10, 2026
GitHub

📋 What's Changed

  • Config
  • Add Ampcast and MPC-QT player entries to the default config
  • README
  • Add `mprisence-bin` AUR install option
v1.4.1
lazykernlazykern·3mo ago·February 27, 2026
GitHub

📋 Changes

  • Config
  • Add [Haruna player](https://haruna.kde.org/)
  • Set `ignore = false` explicitly for bundled supported players so `[player.default].ignore = true` does not unintentionally ignore them
v1.4.0
lazykernlazykern·4mo ago·February 16, 2026
GitHub

New feature: **Custom Activity Status**

  • You can now choose what Discord shows in your status text:
  • | `status_display_type` | Preview |
  • | ------------------------------------------------------------------------------------- | ----------------------------------------------------------- |

📦 Also in this release

  • Added [Quester](https://codeberg.org/anoraktrend/quester) (mpd player) to default config. #69 #71
  • Migrated template key from `template.detail` to `template.details`.
  • `template.detail` is still supported for compatibility (deprecated).

📦 Special Thanks

  • to @NonsensicalNickname for the status display feature contribution in #70.
  • to @anoraktrend for providing Discord App Client for [Quester](https://codeberg.org/anoraktrend/quester) #69.
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.3.3...v1.4.0
v1.3.3
lazykernlazykern·4mo ago·February 10, 2026
GitHub

📋 What's Changed

  • Cover Art
  • Allow metadata-only providers (MusicBrainz) to run when `mpris:artUrl` and local tagged cover data are unavailable [#68](https://github.com/lazykern/mprisence/issues/68)
  • Player
  • Add `cmus-remote` metadata enrichment to improve local file URL/tag resolution for metadata and cover lookup
  • RPC
  • Clear Discord activity before closing IPC connection to reduce stale presence lingering [#67](https://github.com/lazykern/mprisence/issues/67)
  • Trigger an immediate first-cycle presence update when a newly discovered player is initialized
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.3.2...v1.3.3
v1.3.2
lazykernlazykern·5mo ago·January 26, 2026
GitHub

📋 What's Changed

  • Modified a player icon and added MusicBee configuration by @Blackstar1069 in https://github.com/lazykern/mprisence/pull/66

New Contributors

  • @Blackstar1069 made their first contribution in https://github.com/lazykern/mprisence/pull/66
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.3.1...v1.3.2
v1.3.1
lazykernlazykern·6mo ago·December 3, 2025
GitHub

📋 Changes

  • Fix
  • Preserve full reverse-DNS player bus names (e.g. `io.github.htkhiem.euphonica`) while stripping MPRIS prefixes
v1.3.0
lazykernlazykern·6mo ago·December 3, 2025
GitHub

📋 Changes

  • Config
  • Player identities and bus names now support regex patterns (prefix with `re:` or wrap in `/.../`) for both player config and allowed lists
  • Matching also checks the player bus name, allowing configs to apply even when the displayed identity differs
  • New `allowed_players` configuration lets you limit discovery to specific players using exact, wildcard, or regex patterns
  • Addresses [#62](https://github.com/lazykern/mprisence/issues/62) and [#63](https://github.com/lazykern/mprisence/issues/63)
v1.2.14
lazykernlazykern·7mo ago·November 24, 2025
GitHub

📋 Changes

  • Config
  • Added Qmmp player to default config
v1.2.13
lazykernlazykern·7mo ago·November 15, 2025
GitHub

📋 Changes

  • Cover Art
  • Support catbox and litterbox uploader
  • Switch to catbox as default image hosting service instead of imgbb
  • Current cover art provider config: `["musicbrainz", "catbox"]`
  • Note: mprisence will still try to find cover arts from musicbrainz first by default
  • Improve musicbrainz track search strategy
v1.2.12
lazykernlazykern·7mo ago·November 14, 2025
GitHub

📋 Changes

  • Fix
  • `allow_streaming = false` now enforces itself by clearing Discord activity for HTTP/HTTPS sources https://github.com/lazykern/mprisence/issues/58
  • Config
  • Ignore `firefox` by default (another identity of `mozilla_firefox`)
v1.2.11
lazykernlazykern·7mo ago·November 14, 2025
GitHub

📋 Changes

  • CLI
  • `mprisence players list` now shows whether each detected player is currently ignored
v1.2.10
lazykernlazykern·7mo ago·November 8, 2025
GitHub

📋 Changes

  • Config
  • Added a wait loop so hot reload pauses until the config file is written again, preventing reload failures when editors swap files
  • Added Quod Libet and Euphonica player entries to the default configuration
v1.2.9
lazykernlazykern·8mo ago·October 11, 2025
GitHub

📋 Changes

  • Config
  • Added wildcard player config support
  • Example:
v1.2.8
lazykernlazykern·8mo ago·October 8, 2025
GitHub

📋 Changes

  • Config
  • Added Gapless and Harmony Music to default config
v1.2.7
lazykernlazykern·9mo ago·September 27, 2025
GitHub

Make handlebars not escape characters while compiling template **Full Changelog**: https://github.com/lazykern/mprisence/compare/v1.2.6...v1.2.7

v1.2.6
lazykernlazykern·10mo ago·August 24, 2025
GitHub

📋 What's Changed

  • add support for kew by @lazykern in https://github.com/lazykern/mprisence/pull/53
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.2.5...v1.2.6
v1.2.5
lazykernlazykern·10mo ago·August 19, 2025
GitHub

📋 What's Changed

  • Fixed album cover path that is derived from artUrl (`file://`) not getting decoded by @paypur in https://github.com/lazykern/mprisence/pull/51

New Contributors

  • @paypur made their first contribution in https://github.com/lazykern/mprisence/pull/51
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.2.4...v1.2.5
v1.2.4
lazykernlazykern·10mo ago·August 11, 2025
GitHub

📋 What's Changed

  • add Supersonic and Feishin + local/private url check for cover art retrieval by @lazykern in https://github.com/lazykern/mprisence/pull/49
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.2.3...v1.2.4
v1.2.3
lazykernlazykern·11mo ago·July 29, 2025
GitHub

📋 Changes

  • Dependencies
  • Bumped `notify` from 8.0.0 to 8.1.0
  • Upgraded `toml` from 0.8.20 to 0.9
  • Upgraded `blake3` from 1.8.1 to 1.8.2
v.1.2.2v1.2.2
lazykernlazykern·11mo ago·July 21, 2025
GitHub

📋 What's Changed

  • add fooyin to default config by @lazykern in https://github.com/lazykern/mprisence/pull/45
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.2.1...v1.2.2
v1.2.1
lazykernlazykern·1y ago·April 19, 2025
GitHub

📋 What's Changed

  • Cover Art
  • Use album artists for MusicBrainz release group search
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.2.0...v1.2.1
v1.2.0
lazykernlazykern·1y ago·April 19, 2025
GitHub

📋 What's Changed

  • Config
  • Added `cover.provider.musicbrainz.min_score` to set the minimum score for MusicBrainz cover art
  • Added `cover.local_search_depth` to set the depth of local cover art search
  • Cover Art
  • Increased MusicBrainz query duration range from 3 seconds to 5 seconds
  • Added album name to MusicBrainz track search query
  • Escape Lucene special characters in MusicBrainz search queries
  • Full Changelog: https://github.com/lazykern/mprisence/compare/v1.1.2...v1.2.0