New frontend-agnostic crate qbz-media-controls (ADR-006): one MediaIntegration trait, cfg-split backends. Linux uses mpris-server and publishes the MPRIS org.mpris.MediaPlayer2.DesktopEntry property as com.blitzfc.qbz — the only way GNOME Shell resolves the app icon for its media widget (souvlaki, the old cross-platform crate, never set it, so GNOME showed no icon; KDE is lenient). macOS/Windows keep souvlaki (MediaRemote/SMTC), where the icon comes from the app bundle, not a DesktopEntry. The Linux server runs on a dedicated thread with its own tokio runtime; state arrives over an async channel. Wired into qbz-slint via src/media_controls.rs: started on shell entry, metadata/playback pushed from the playback paths (mirroring the tray), and inbound control events (media keys, the desktop media widget, Now Playing) dispatched to the player through the existing QConnect-aware helpers. Both Linux and macOS compile clean. cc
13 lines
340 B
Desktop File
13 lines
340 B
Desktop File
[Desktop Entry]
|
|
Name=QBZ
|
|
Comment=Native Qobuz client with hi-res audio support
|
|
Exec=qbz %u
|
|
Type=Application
|
|
Icon=qbz
|
|
Categories=AudioVideo;Audio;Music;Player;
|
|
Terminal=false
|
|
StartupWMClass=com.blitzfc.qbz
|
|
StartupNotify=true
|
|
Keywords=music;audio;qobuz;hifi;streaming;audiophile;flac;
|
|
MimeType=x-scheme-handler/qbz;x-scheme-handler/qobuzapp;
|