summaryrefslogtreecommitdiff
path: root/modules/osd
diff options
context:
space:
mode:
Diffstat (limited to 'modules/osd')
-rw-r--r--modules/osd/Interactions.qml48
1 files changed, 48 insertions, 0 deletions
diff --git a/modules/osd/Interactions.qml b/modules/osd/Interactions.qml
new file mode 100644
index 0000000..eecf0b6
--- /dev/null
+++ b/modules/osd/Interactions.qml
@@ -0,0 +1,48 @@
+import "root:/services"
+import "root:/config"
+import Quickshell
+import QtQuick
+
+Scope {
+ id: root
+
+ required property ShellScreen screen
+ required property PersistentProperties visibilities
+ required property bool hovered
+ readonly property Brightness.Monitor monitor: Brightness.getMonitorForScreen(screen)
+
+ function show(): void {
+ root.visibilities.osd = true;
+ timer.restart();
+ }
+
+ Connections {
+ target: Audio
+
+ function onMutedChanged(): void {
+ root.show();
+ }
+
+ function onVolumeChanged(): void {
+ root.show();
+ }
+ }
+
+ Connections {
+ target: root.monitor
+
+ function onBrightnessChanged(): void {
+ root.show();
+ }
+ }
+
+ Timer {
+ id: timer
+
+ interval: OsdConfig.hideDelay
+ onTriggered: {
+ if (!root.hovered)
+ root.visibilities.osd = false;
+ }
+ }
+}