nova-shell/modules/Volume.qml
2026-04-11 00:22:09 +02:00

37 lines
989 B
QML

import QtQuick
import Quickshell.Services.Pipewire
import "." as M
Row {
id: root
spacing: 4
PwObjectTracker {
objects: [Pipewire.defaultAudioSink]
}
readonly property var sink: Pipewire.defaultAudioSink
readonly property real volume: sink?.audio?.volume ?? 0
readonly property bool muted: sink?.audio?.muted ?? false
Text {
text: root.muted ? "" : (root.volume > 0.5 ? "" : (root.volume > 0 ? "" : ""))
color: M.Theme.base05
font.pixelSize: M.Theme.fontSize + 1
font.family: M.Theme.fontFamily
anchors.verticalCenter: parent.verticalCenter
}
Text {
text: Math.round(root.volume * 100) + "%"
color: M.Theme.base05
font.pixelSize: M.Theme.fontSize
font.family: M.Theme.fontFamily
anchors.verticalCenter: parent.verticalCenter
}
TapHandler {
onTapped: if (root.sink?.audio)
root.sink.audio.muted = !root.sink.audio.muted
}
}