pipewire service

This commit is contained in:
Benjamin Palko 2025-07-31 09:53:50 -04:00
parent 38fce255d8
commit 89cf6f315b
2 changed files with 62 additions and 33 deletions

48
services/Pipewire.qml Normal file
View file

@ -0,0 +1,48 @@
pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Services.Pipewire
Singleton {
id: root
readonly property PwNode sink: Pipewire.defaultAudioSink
readonly property PwNode source: Pipewire.defaultAudioSource
readonly property bool muted: sink?.audio?.muted ?? false
readonly property real volume: sink?.audio?.volume ?? 0
function setVolume(volume: real): void {
if (sink?.ready && sink?.audio) {
sink.audio.muted = false;
sink.audio.volume = volume;
}
}
function incrementVolume() {
if (!sink?.ready || !sink?.audio) {
return;
}
sink.audio.muted = false;
sink.audio.volume = Math.min(sink.audio.volume + 0.02, 1.0);
}
function decrementVolume() {
if (!sink?.ready || !sink?.audio) {
return;
}
sink.audio.volume -= 0.02;
}
function toggleMute() {
if (!sink?.ready || !sink?.audio) {
return;
}
sink.audio.muted = !sink.audio.muted;
}
PwObjectTracker {
objects: [Pipewire.defaultAudioSink, Pipewire.defaultAudioSource]
}
}