/ services / Audio.qml
Audio.qml
 1  pragma Singleton
 2  
 3  import Quickshell
 4  import Quickshell.Services.Pipewire
 5  
 6  Singleton {
 7      id: root
 8  
 9      readonly property PwNode sink: Pipewire.defaultAudioSink
10      readonly property PwNode source: Pipewire.defaultAudioSource
11  
12      readonly property bool muted: sink?.audio?.muted ?? false
13      readonly property real volume: sink?.audio?.volume ?? 0
14  
15      function setVolume(volume: real): void {
16          if (sink?.ready && sink?.audio) {
17              sink.audio.muted = false;
18              sink.audio.volume = volume;
19          }
20      }
21  
22      PwObjectTracker {
23          objects: [Pipewire.defaultAudioSink, Pipewire.defaultAudioSource]
24      }
25  }