diff options
Diffstat (limited to 'desktop/modules/status/README.md')
| -rw-r--r-- | desktop/modules/status/README.md | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/desktop/modules/status/README.md b/desktop/modules/status/README.md index 2092890..571f859 100644 --- a/desktop/modules/status/README.md +++ b/desktop/modules/status/README.md @@ -1,17 +1,22 @@ # status -Desktop modes as state: `dnd` and `presentation`, owned by the `Status` -singleton and stored as files under `$XDG_RUNTIME_DIR`. +Desktop modes as state: `dnd`, `presentation` and `nolock`, owned by the +`Status` singleton and stored as files under `$XDG_RUNTIME_DIR`. ## The files are the interface $XDG_RUNTIME_DIR/status.dnd $XDG_RUNTIME_DIR/status.presentation + $XDG_RUNTIME_DIR/status.nolock Each holds `0` or `1`; a missing file means off. That directory is tmpfs, so a reboot resets every mode and there is no cleanup code. A shell restart does not: the files outlive the process and the singleton reads them back. +`nolock` is stored as "auto-lock disabled", which is the inverse of the switch +the page shows. The file keeps the registry's "missing means off" rule, and the +page inverts it so the label reads as the default: screen lock on. + Anything can read a mode with `cat`. `statusctl` is the convenience, not the mechanism, which is why it keeps working while quickshell is down. @@ -35,9 +40,18 @@ and reasserted when it returns. `dnd` has none of its own. It is state the notification daemon reads. -`presentation` sets `dnd`, asserts a Wayland idle inhibitor, and pauses -breaktimer. Turning it off restores `dnd` to the value it had before rather -than clearing it, so hand-set DND survives a presentation. +`presentation` sets `dnd` and `nolock`, asserts a Wayland idle inhibitor, and +pauses breaktimer. Turning it off restores `dnd` and `nolock` to the values +they had before rather than clearing them, so hand-set DND or a hand-set +disable survives a presentation. + +`nolock` disables auto-lock by holding the idle inhibitor. That is the only +thing that stops hypridle's `loginctl lock-session`, so the mode governs +idle-triggered locking and nothing else: the `SUPER+l` bind and the lock on +suspend are separate paths and stay live. The page can set it permanently or +for a number of minutes, in which case the singleton's timer re-enables it. +The timer is shell-lifetime: a restart during a timed disable leaves the lock +off until it is toggled, the same class of limit as `dndBeforePresentation`. breaktimer owns `$XDG_RUNTIME_DIR/breaktimer.state`. This module calls `breaktimer.sh pause|resume` and never writes that file: its daemon loop |
