lock: answer touchKeypad on a cold start, not just a reload
PersistentProperties is in-process, so it carries the surface choice through a reload and not through a fresh shell. sessiond locks before the shell exists, so a greetd-started shell adopts a live lock with Config.ready still false and binds the desktop surface — and WlSessionLock.surfaceComponent cannot change once active. A lock screen that will not take your PIN, on the iPhone 7 tonight. Reads the environment, which answers at construction. Unset behaves exactly as before, so nothing changes on blueline until it sets it.
This commit is contained in:
parent
eb0292c342
commit
bf469c4216
1 changed files with 8 additions and 1 deletions
|
|
@ -131,10 +131,17 @@ LockScreen {
|
|||
//
|
||||
// So the last known-good answer rides through the reload in-process, and
|
||||
// Config takes over the moment it is genuinely loaded.
|
||||
//
|
||||
// `PersistentProperties` is in-process, so it covers a reload and not a
|
||||
// cold start. sessiond takes the lock before the shell exists, so a shell
|
||||
// started by greetd adopts a live lock at construction with `ready` still
|
||||
// false — the fatal path above, reached without any reload. `SOUVERAINE_
|
||||
// TOUCH_KEYPAD` is read from the environment, which is answerable at that
|
||||
// instant; unset it reads exactly as before.
|
||||
PersistentProperties {
|
||||
id: lockPrefs
|
||||
reloadableId: "souveraineLockPrefs"
|
||||
property bool touchKeypad: false
|
||||
property bool touchKeypad: Quickshell.env("SOUVERAINE_TOUCH_KEYPAD") === "1"
|
||||
}
|
||||
|
||||
Connections {
|
||||
|
|
|
|||
Loading…
Reference in a new issue