/ services / Cava.qml
Cava.qml
 1  pragma Singleton
 2  
 3  import "root:/config"
 4  import Quickshell
 5  import Quickshell.Io
 6  
 7  Singleton {
 8      id: root
 9  
10      property list<int> values
11  
12      Process {
13          running: true
14          command: ["sh", "-c", `printf '[general]\nframerate=60\nbars=${DashboardConfig.visualiserBars}\n[output]\nchannels=mono\nmethod=raw\nraw_target=/dev/stdout\ndata_format=ascii\nascii_max_range=100' | cava -p /dev/stdin`]
15          stdout: SplitParser {
16              onRead: data => root.values = data.slice(0, -1).split(";").map(v => parseInt(v, 10))
17          }
18      }
19  }