From 4c4ed4e3ce3dd25395866cb0bb71a8187f359dbe Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 11 Sep 2026 16:46:20 +0200 Subject: feat(volume-osd): show what is playing The OSD gains a track row above the volume bar when an MPRIS player is running: album art, title, artist, and prev/play/next. With no player it is the volume OSD it was, at the same size. A track change or a play/pause shows the panel as well, so the row is not something you only see by happening to touch the volume. Hovering freezes the fade so the buttons can be clicked and leaving restarts it, which keeps the passive behaviour intact for anyone not reaching for the mouse. The panel still takes no keyboard focus. playerctld proxies whichever player is active and republishes it under its own bus name, so every player is enumerated twice. Player.qml drops that name rather than deduplicating by identity, and controls the real player, which works whether or not playerctld is running. Album art is loaded with cache off and a per-track suffix on the URL. Audacious extracts embedded art into one temp file in its cache and rewrites that same path for each track, so the URL repeats while the image changes, and a cached Image would keep showing the last cover. Theme gains overlay, used by the art placeholder. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01G7NRsGyF9jGfPYS4zPqpN7 --- volume-osd/Theme.qml | 2 ++ 1 file changed, 2 insertions(+) (limited to 'volume-osd/Theme.qml') diff --git a/volume-osd/Theme.qml b/volume-osd/Theme.qml index 21e6c1a..bee17b4 100644 --- a/volume-osd/Theme.qml +++ b/volume-osd/Theme.qml @@ -30,6 +30,7 @@ Singleton { property color text: "#cad3f5" property color subtext: "#a5adcb" property color red: "#ed8796" + property color overlay: "#6e738d" property color accent: "#b7bdf8" readonly property string fontFamily: "Noto Sans" @@ -52,6 +53,7 @@ Singleton { root.text = pick("text") ?? root.text; root.subtext = pick("subtext0") ?? root.subtext; root.red = pick("red") ?? root.red; + root.overlay = pick("overlay0") ?? root.overlay; root.accent = pick("accent") ?? root.accent; } } -- cgit v1.2.3