diff --git a/modules/Mpris.qml b/modules/Mpris.qml index 252a3cc..d24c39e 100644 --- a/modules/Mpris.qml +++ b/modules/Mpris.qml @@ -41,9 +41,26 @@ M.BarSection { // Cava visualizer — 16 bars, raw output mode property var _cavaBars: Array(16).fill(0) + property bool _cavaActive: false + + on_ShowPanelChanged: { + if (_showPanel) { + _cavaKillTimer.stop(); + _cavaActive = true; + } else { + _cavaKillTimer.restart(); + } + } + + Timer { + id: _cavaKillTimer + interval: 30000 + onTriggered: root._cavaActive = false + } + Process { id: cavaProc - running: root.playing && root.visible + running: root.playing && root._cavaActive command: ["sh", "-c", "cfg=$(mktemp /tmp/nova-cava-XXXXXX.conf);" + "cat > \"$cfg\" << 'CAVAEOF'\n" + "[general]\nbars=16\nframerate=30\n[output]\nmethod=raw\nraw_target=/dev/stdout\ndata_format=ascii\nascii_max_range=100\n" + "CAVAEOF\n" + "trap 'rm -f \"$cfg\"' EXIT;" + "exec cava -p \"$cfg\""] stdout: SplitParser { splitMarker: "\n"