pragma ComponentBehavior: Bound import qs.components.misc import Quickshell import Quickshell.Io import Quickshell.Wayland Scope { property alias lock: lock WlSessionLock { id: lock signal unlock LockSurface { lock: lock pam: pam } } Pam { id: pam lock: lock } CustomShortcut { name: "lock" description: "Lock the current session" onPressed: lock.locked = true } CustomShortcut { name: "unlock" description: "Unlock the current session" onPressed: lock.unlock() } IpcHandler { target: "lock" function lock(): void { lock.locked = true; } function unlock(): void { lock.unlock(); } function isLocked(): bool { return lock.locked; } } }