pragma Singleton import QtQuick import Quickshell.Services.Pipewire QtObject { id: root readonly property var sink: Pipewire.defaultAudioSink readonly property real volume: sink?.audio?.volume ?? 0 readonly property bool muted: sink?.audio?.muted ?? false readonly property var sinks: { const list = []; if (Pipewire.nodes) { for (const node of Pipewire.nodes.values) if (!node.isStream && node.isSink) list.push(node); } return list; } readonly property var streams: { const list = []; if (Pipewire.nodes) { for (const node of Pipewire.nodes.values) if (node.isStream && node.audio) list.push(node); } return list; } property PwObjectTracker _tracker: PwObjectTracker { objects: [Pipewire.defaultAudioSink, ...root.streams] } }