import qs.services import qs.config import Quickshell import QtQuick Scope { id: root required property PersistentProperties uiState required property bool hovered required property bool suppressed function show(): void { if (!root.suppressed) { root.uiState.osd = true; timer.restart(); } } Connections { target: Audio function onMutedChanged(): void { if (root.uiState.osdVolumeReact) root.show(); } function onVolumeChanged(): void { if (root.uiState.osdVolumeReact) root.show(); } } Connections { target: Brightness function onBrightnessChanged(): void { if (root.uiState.osdBrightnessReact) root.show(); } } Timer { id: timer interval: Config.osd.hideDelay onTriggered: { if (!root.hovered) root.uiState.osd = false; } } }