summaryrefslogtreecommitdiff
path: root/services/Audio.qml
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-05-04 20:45:34 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-05-04 20:45:34 +1000
commitfb471f1023ab4991c124d0bc432028d95d7b7300 (patch)
tree6e46278fabc8f4b584cd668703bfe28e3d78ec8d /services/Audio.qml
parentappearance: better on colours (diff)
downloadcaelestia-shell-fb471f1023ab4991c124d0bc432028d95d7b7300.tar.gz
caelestia-shell-fb471f1023ab4991c124d0bc432028d95d7b7300.tar.bz2
caelestia-shell-fb471f1023ab4991c124d0bc432028d95d7b7300.zip
feat: audio osd
Diffstat (limited to 'services/Audio.qml')
-rw-r--r--services/Audio.qml25
1 files changed, 25 insertions, 0 deletions
diff --git a/services/Audio.qml b/services/Audio.qml
new file mode 100644
index 0000000..c91adbc
--- /dev/null
+++ b/services/Audio.qml
@@ -0,0 +1,25 @@
+pragma Singleton
+
+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;
+ }
+ }
+
+ PwObjectTracker {
+ objects: [Pipewire.defaultAudioSink, Pipewire.defaultAudioSource]
+ }
+}