Bug 482908 - Missing fallback icon for desktop-less MPRIS2 clients
Summary: Missing fallback icon for desktop-less MPRIS2 clients
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Media Player (show other bugs)
Version: 6.0.1
Platform: Arch Linux Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2024-03-08 18:51 UTC by Guilherme Silva
Modified: 2024-03-09 06:21 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Missing icon in Music applet (144.63 KB, image/png)
2024-03-08 18:51 UTC, Guilherme Silva
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Guilherme Silva 2024-03-08 18:51:26 UTC
Created attachment 166727 [details]
Missing icon in Music applet

SUMMARY
I use a daemon called mpd-mpris [1] to implement the MPRIS2 interface for Music Player Daemon (MPD).

This daemon does not set the "DesktopEntry" option[2], because it doesn't really have one.

This was fine back in Plasma 5, because a fallback icon would be used instead.

However, since Plasma 6, I get no icon at all (see the attachment for a screenshot).

My suspicion is that the issue lies in this block of code from libkmpris:

https://invent.kde.org/plasma/plasma-workspace/-/blob/6e0343c873df504d20926a6e2afc146ea0e14938/libkmpris/playercontainer.cpp#L570-575

mpd-mpris does not seem to set the "DesktopEntry" option at all[3], and so that branch in libkmpris that handles the fallback icon case, is never reached.

STEPS TO REPRODUCE
1. Have a working MPD server
2. Install mpd-mpris
3. Invoke mpd-mpris from the command line
4. Open the Music applet on Plasma 6

OBSERVED RESULT
Notice the missing icon for the MPD client.

EXPECTED RESULT
A fallback icon should be be used.

SOFTWARE/OS VERSIONS

Operating System: Arch Linux 
KDE Plasma Version: 6.0.1
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Kernel Version: 6.7.8-arch1-1 (64-bit)
Graphics Platform: X11
Processors: 4 × Intel® Core™ i5-3570K CPU @ 3.40GHz
Memory: 7,7 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 660/PCIe/SSE2

ADDITIONAL INFORMATION
N/A

Refs:
[1] https://github.com/natsukagami/mpd-mpris/
[2] https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html#Property:DesktopEntry
[3] https://github.com/natsukagami/mpd-mpris/blob/4a10c25567adab6a67edf6ee43f3ff0128068dd9/root.go#L18-L26
Comment 1 Bug Janitor Service 2024-03-09 01:25:24 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/4022
Comment 2 Guilherme Silva 2024-03-09 06:02:30 UTC
Git commit 9d92011d6022b57058ef8b02b5384f42e3e3f687 by Guilherme Silva.
Committed on 09/03/2024 at 05:30.
Pushed by fusionfuture into branch 'master'.

libkmpris: prevent an empty icon from being used

The previous logic would only use the fallback icon
("emblem-music-symbolic"), if the client had the "DesktopEntry"
property[1] set.

But since clients are allowed to omit that property completely
(mpd-mpris[2] does that), m_iconName would stay an empty string, and
clients would be left icon-less.

This change ensures that m_iconName is never an empty string.

[1] https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html#Property:DesktopEntry
[2] https://github.com/natsukagami/mpd-mpris/

M  +3    -3    libkmpris/playercontainer.cpp
M  +1    -1    libkmpris/playercontainer.h

https://invent.kde.org/plasma/plasma-workspace/-/commit/9d92011d6022b57058ef8b02b5384f42e3e3f687
Comment 3 Fushan Wen 2024-03-09 06:21:38 UTC
Git commit afa9e3406ba23a87cf4773f84f917d6466a33fa3 by Fushan Wen, on behalf of Guilherme Silva.
Committed on 09/03/2024 at 06:03.
Pushed by fusionfuture into branch 'Plasma/6.0'.

libkmpris: prevent an empty icon from being used

The previous logic would only use the fallback icon
("emblem-music-symbolic"), if the client had the "DesktopEntry"
property[1] set.

But since clients are allowed to omit that property completely
(mpd-mpris[2] does that), m_iconName would stay an empty string, and
clients would be left icon-less.

This change ensures that m_iconName is never an empty string.

[1] https://specifications.freedesktop.org/mpris-spec/latest/Media_Player.html#Property:DesktopEntry
[2] https://github.com/natsukagami/mpd-mpris/


(cherry picked from commit 9d92011d6022b57058ef8b02b5384f42e3e3f687)

M  +3    -3    libkmpris/playercontainer.cpp
M  +1    -1    libkmpris/playercontainer.h

https://invent.kde.org/plasma/plasma-workspace/-/commit/afa9e3406ba23a87cf4773f84f917d6466a33fa3