From 5419b7134e38696afccd1da5da6056d66858f2a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Atoch?= Date: Sun, 17 Aug 2025 13:14:46 -0400 Subject: [PATCH] CavaService improvements - bring back autosens for better visualization at low volume input - enable Cava process as long as we have a visualizer and the sidePanel is open, this helps capture audio when there is no active mpris player (ex: mpv, game audio, etc...) --- Services/CavaService.qml | 8 ++++---- Services/PanelService.qml | 3 +++ shell.qml | 3 +++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Services/CavaService.qml b/Services/CavaService.qml index 89e4248..d80c0b6 100644 --- a/Services/CavaService.qml +++ b/Services/CavaService.qml @@ -3,6 +3,7 @@ pragma Singleton import QtQuick import Quickshell import Quickshell.Io +import qs.Commons Singleton { id: root @@ -14,9 +15,8 @@ Singleton { "general": { "bars": barsCount, "framerate": 60, - "autosens": 0, - "overshoot": 0, - "sensitivity": 200, + "autosens": 1, + "sensitivity": 100, "lower_cutoff_freq": 50, "higher_cutoff_freq": 12000 }, @@ -37,7 +37,7 @@ Singleton { Process { id: process stdinEnabled: true - running: MediaService.isPlaying + running: (Settings.data.audio.visualizerType !== "none") && PanelService.sidePanel.isLoaded command: ["cava", "-p", "/dev/stdin"] onExited: { stdinEnabled = true diff --git a/Services/PanelService.qml b/Services/PanelService.qml index 2e56987..8f0ca3a 100644 --- a/Services/PanelService.qml +++ b/Services/PanelService.qml @@ -5,5 +5,8 @@ import Quickshell Singleton { id: root + // Currently opened panel property var openedPanel: null + + property var sidePanel: null } diff --git a/shell.qml b/shell.qml index 6415d86..fb53741 100644 --- a/shell.qml +++ b/shell.qml @@ -63,6 +63,9 @@ ShellRoot { IPCManager {} Component.onCompleted: { + // Save a ref. to our sidePanel so we can access it from services + PanelService.sidePanel = sidePanel + // Ensure our singleton is created as soon as possible so we start fetching weather asap LocationService.init() }