diff options
| author | Nippy <nippy@rp1.hu> | 2026-05-08 19:50:49 +0200 |
|---|---|---|
| committer | Nippy <nippy@rp1.hu> | 2026-05-08 19:50:49 +0200 |
| commit | 3462bcc46ecf74f576ea4397f16492c16bd75b10 (patch) | |
| tree | c5ab7aef4498647e057bda8d49c11e5f9dda74c9 /raveos-hyprland-theme/theme-data/dms/Modules/Lock/LockSurface.qml | |
| parent | 56616f693b4f263cbf0d47da43b67424efa6022d (diff) | |
| download | RaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.tar.gz RaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.zip | |
raveos update
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/Modules/Lock/LockSurface.qml')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/dms/Modules/Lock/LockSurface.qml | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/Modules/Lock/LockSurface.qml b/raveos-hyprland-theme/theme-data/dms/Modules/Lock/LockSurface.qml new file mode 100644 index 0000000..9d1beae --- /dev/null +++ b/raveos-hyprland-theme/theme-data/dms/Modules/Lock/LockSurface.qml @@ -0,0 +1,73 @@ +pragma ComponentBehavior: Bound + +import QtQuick +import Quickshell.Wayland +import qs.Common + +FocusScope { + id: root + + required property WlSessionLock lock + required property string sharedPasswordBuffer + required property string screenName + required property bool isLocked + + signal passwordChanged(string newPassword) + signal unlockRequested + + Keys.onPressed: event => { + if (videoScreensaver.active && videoScreensaver.inputEnabled) { + videoScreensaver.dismiss(); + event.accepted = true; + } + } + + Rectangle { + anchors.fill: parent + color: "transparent" + } + + LockScreenContent { + id: lockContent + + anchors.fill: parent + demoMode: false + passwordBuffer: root.sharedPasswordBuffer + screenName: root.screenName + enabled: !videoScreensaver.active + focus: !videoScreensaver.active + opacity: videoScreensaver.active ? 0 : 1 + onUnlockRequested: root.unlockRequested() + onPasswordBufferChanged: { + if (root.sharedPasswordBuffer !== passwordBuffer) { + root.passwordChanged(passwordBuffer); + } + } + + Behavior on opacity { + NumberAnimation { + duration: 200 + } + } + } + + VideoScreensaver { + id: videoScreensaver + anchors.fill: parent + screenName: root.screenName + } + + Component.onCompleted: forceActiveFocus() + + onIsLockedChanged: { + if (isLocked) { + forceActiveFocus(); + lockContent.resetLockState(); + if (SettingsData.lockScreenVideoEnabled) { + videoScreensaver.start(); + } + return; + } + lockContent.unlocking = false; + } +} |