osd attached to triggering module position, per-screen filtering

This commit is contained in:
Damocles 2026-04-12 17:57:12 +02:00
parent 85a1260a35
commit 66dc628752
4 changed files with 19 additions and 6 deletions

View file

@ -1,4 +1,5 @@
import QtQuick
import Quickshell
import Quickshell.Services.Pipewire
import "." as M
@ -15,8 +16,12 @@ M.BarSection {
readonly property real volume: sink?.audio?.volume ?? 0
readonly property bool muted: sink?.audio?.muted ?? false
onVolumeChanged: M.OsdState.show(volume, root.muted ? "\uF026" : (volume > 0.5 ? "\uF028" : "\uF027"))
onMutedChanged: M.OsdState.show(volume, root.muted ? "\uF026" : (volume > 0.5 ? "\uF028" : "\uF027"))
function _showOsd() {
const ico = root.muted ? "\uF026" : (volume > 0.5 ? "\uF028" : "\uF027");
M.OsdState.show(volume, ico, root.mapToGlobal(root.width / 2, 0).x - (QsWindow.window?.screen?.x ?? 0), QsWindow.window?.screen ?? null);
}
onVolumeChanged: _showOsd()
onMutedChanged: _showOsd()
M.BarIcon {
icon: root.muted ? "\uF026" : (root.volume > 0.5 ? "\uF028" : (root.volume > 0 ? "\uF027" : "\uF026"))