From 36772735f305f5cde6bfa20b7fcf986208637e59 Mon Sep 17 00:00:00 2001 From: Kangheng Liu <72962885+kanghengliu@users.noreply.github.com> Date: Fri, 10 Jul 2026 13:37:16 -0400 Subject: [PATCH] fix(player): combine trackid with text identity (#2808) fixes #2807 (cherry picked from commit c445597f83650f9059d924d511aeca9d72502fd8) --- quickshell/Services/TrackArtService.qml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/quickshell/Services/TrackArtService.qml b/quickshell/Services/TrackArtService.qml index ed6c152d0..34c6f240c 100644 --- a/quickshell/Services/TrackArtService.qml +++ b/quickshell/Services/TrackArtService.qml @@ -184,11 +184,13 @@ Singleton { const p = activePlayer; if (!p) return ""; - // Prefer the stable track id; title/artist/album fill in progressively (Chrome). + // Combine trackid with the text identity. trackid alone dedups Chrome's multi-size art + // re-publish, but some players (e.g. KDEconnect) expose a constant trackid across every + // track, so keying on it alone wedged the dedup and new-song art never loaded. Folding + // in title/artist/album busts the lock on a real track change while same-track art + // churn (stable text) stays deduped. const tid = p.metadata && p.metadata["mpris:trackid"] ? p.metadata["mpris:trackid"].toString() : ""; - if (tid !== "") - return tid; - return (p.trackTitle || "") + "" + (p.trackArtist || "") + "" + (p.trackAlbum || ""); + return tid + " " + (p.trackTitle || "") + " " + (p.trackArtist || "") + " " + (p.trackAlbum || ""); } function artReadyFor(player) {