add popup for audio management

This commit is contained in:
lucy 2026-08-25 20:11:19 +02:00
commit 5005ba24db
11 changed files with 298 additions and 120 deletions

View file

@ -0,0 +1,34 @@
pragma Singleton
import Quickshell
import QtQuick
import Quickshell.Services.Pipewire
Singleton {
id: root
property bool ready: Pipewire.ready
property bool muted: defaultAudio.audio.muted
property PwNode defaultAudio: Pipewire.defaultAudioSink
property PwNode preferredAudio: Pipewire.preferredDefaultAudioSink
property real percentage: Math.round(preferredAudio?.audio.volume * 100)
readonly property list<PwNode> sinks: Pipewire.nodes.values.filter(n => n.audio && n.isSink && !n.isStream)
readonly property list<PwNode> sources: Pipewire.nodes.values.filter(n => n.audio && !n.isSink && !n.isStream)
PwObjectTracker {
objects: [...root.sinks, ...root.sources]
}
function getVolumeIcon(sink) {
let mute = sink.audio.muted
let volume = sink.audio.volume
if (mute) {
return "audio-volume-muted-symbolic";
}
if (volume <= 0.33) {
return "audio-volume-low-symbolic";
}
if (volume <= 0.66) {
return "audio-volume-medium-symbolic";
}
if (volume >= 0.66) {
return "audio-volume-high-symbolic";
}
}
}

View file

@ -0,0 +1,10 @@
pragma Singleton
import Quickshell
import QtQuick
import Quickshell.Pipewire
Singleton {
property
}