add popup for audio management
This commit is contained in:
parent
f409062ba6
commit
5005ba24db
11 changed files with 298 additions and 120 deletions
34
modules/Services/Audio.qml
Normal file
34
modules/Services/Audio.qml
Normal 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue