From 304baf6f605592b182548bd1f8c317431622dd51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20=22Angerion=22=20=C4=8Celeda?= Date: Mon, 1 Jun 2026 15:45:16 +0200 Subject: [PATCH] fix(CavaService): prevent 100% CPU EOF spin loop by using temp file (#2471) * fix(CavaService): prevent 100% CPU EOF spin loop by using temp config file * cava: make tmp file non-deterministic --------- Co-authored-by: bbedward --- quickshell/Services/CavaService.qml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/quickshell/Services/CavaService.qml b/quickshell/Services/CavaService.qml index d3e5717a..25d101bb 100644 --- a/quickshell/Services/CavaService.qml +++ b/quickshell/Services/CavaService.qml @@ -1,9 +1,11 @@ pragma Singleton pragma ComponentBehavior: Bound +import QtCore import QtQuick import Quickshell import Quickshell.Io +import qs.Common Singleton { id: root @@ -11,6 +13,7 @@ Singleton { property list values: Array(6) property int refCount: 0 property bool cavaAvailable: false + readonly property string _confPath: `${Paths.strip(StandardPaths.writableLocation(StandardPaths.TempLocation))}/dms-cava-${Date.now()}-${Math.floor(Math.random() * 1000000)}.conf` Process { id: cavaCheck @@ -30,7 +33,7 @@ Singleton { id: cavaProcess running: root.cavaAvailable && root.refCount > 0 - command: ["sh", "-c", `cat <<'CAVACONF' | cava -p /dev/stdin + command: ["sh", "-c", `cat <<'CAVACONF' > ${root._confPath} [general] framerate=25 bars=6 @@ -52,7 +55,8 @@ integral=90 gravity=95 ignore=2 monstercat=1.5 -CAVACONF`] +CAVACONF +exec cava -p ${root._confPath} < /dev/null`] onRunningChanged: { if (!running) {