From 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 Mon Sep 17 00:00:00 2001 From: AlexanderCurl Date: Sat, 18 Apr 2026 17:46:06 +0100 Subject: Replaced file structures for themes in the correct format --- .../quickshell/Modules/Lock/FadeToDpmsWindow.qml | 102 +++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Lock/FadeToDpmsWindow.qml (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Lock/FadeToDpmsWindow.qml') diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Lock/FadeToDpmsWindow.qml b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Lock/FadeToDpmsWindow.qml new file mode 100644 index 0000000..0486890 --- /dev/null +++ b/raveos-hyprland-theme/theme-data/DankMaterialShell/quickshell/Modules/Lock/FadeToDpmsWindow.qml @@ -0,0 +1,102 @@ +pragma ComponentBehavior: Bound + +import QtQuick +import Quickshell +import Quickshell.Wayland +import qs.Common + +PanelWindow { + id: root + + property bool active: false + + signal fadeCompleted + signal fadeCancelled + + visible: active + color: "transparent" + + WlrLayershell.namespace: "dms:fade-to-dpms" + WlrLayershell.layer: WlrLayershell.Overlay + WlrLayershell.exclusiveZone: -1 + WlrLayershell.keyboardFocus: active ? WlrKeyboardFocus.Exclusive : WlrKeyboardFocus.None + + anchors { + left: true + right: true + top: true + bottom: true + } + + Rectangle { + id: fadeOverlay + anchors.fill: parent + color: "black" + opacity: 0 + + onOpacityChanged: { + if (opacity >= 0.99 && root.active) { + root.fadeCompleted(); + } + } + } + + SequentialAnimation { + id: fadeSeq + running: false + + NumberAnimation { + target: fadeOverlay + property: "opacity" + from: 0.0 + to: 1.0 + duration: SettingsData.fadeToDpmsGracePeriod * 1000 + easing.type: Easing.OutCubic + } + } + + function startFade() { + if (!SettingsData.fadeToDpmsEnabled) + return; + active = true; + fadeOverlay.opacity = 0.0; + fadeSeq.stop(); + fadeSeq.start(); + } + + function cancelFade() { + fadeSeq.stop(); + fadeOverlay.opacity = 0.0; + active = false; + fadeCancelled(); + } + + MouseArea { + anchors.fill: parent + enabled: root.active + onClicked: root.cancelFade() + onPressed: root.cancelFade() + } + + FocusScope { + anchors.fill: parent + focus: root.active + + Keys.onPressed: event => { + root.cancelFade(); + event.accepted = true; + } + } + + Component.onCompleted: { + if (active) { + forceActiveFocus(); + } + } + + onActiveChanged: { + if (active) { + forceActiveFocus(); + } + } +} -- cgit v1.3