summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/dms/Modules/Lock/LockSurface.qml
diff options
context:
space:
mode:
authorNippy <nippy@rp1.hu>2026-05-08 19:50:49 +0200
committerNippy <nippy@rp1.hu>2026-05-08 19:50:49 +0200
commit3462bcc46ecf74f576ea4397f16492c16bd75b10 (patch)
treec5ab7aef4498647e057bda8d49c11e5f9dda74c9 /raveos-hyprland-theme/theme-data/dms/Modules/Lock/LockSurface.qml
parent56616f693b4f263cbf0d47da43b67424efa6022d (diff)
downloadRaveOS-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.qml73
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;
+ }
+}