pragma ComponentBehavior: Bound import QtQuick import Quickshell import Quickshell.Io import Quickshell.Wayland import qs.Common import qs.Services Scope { property string sharedPasswordBuffer: "" property bool shouldLock: false Component.onCompleted: { IdleService.lockComponent = this } function activate() { shouldLock = true } Connections { target: SessionService function onSessionLocked() { shouldLock = true } function onSessionUnlocked() { shouldLock = false } } Connections { target: IdleService function onLockRequested() { shouldLock = true } } WlSessionLock { id: sessionLock locked: shouldLock WlSessionLockSurface { color: "transparent" LockSurface { anchors.fill: parent lock: sessionLock sharedPasswordBuffer: sharedPasswordBuffer onUnlockRequested: { shouldLock = false } onPasswordChanged: newPassword => { sharedPasswordBuffer = newPassword } } } } LockScreenDemo { id: demoWindow } IpcHandler { target: "lock" function lock() { shouldLock = true } function demo() { demoWindow.showDemo() } function isLocked(): bool { return sessionLock.locked } } }