My unified nix flake for all configuration management.
- Nix 70.8%
- Rust 12.9%
- Shell 9.3%
- Python 3.6%
- TypeScript 1.6%
- Other 1.7%
A Deck with the idle lock already off still came back to a password
prompt after the power menu suspended it, on a machine whose touchscreen
cannot clear one.
Two separate causes, and turning off the idle ladder addressed neither:
- noctalia holds a logind sleep-DELAY inhibitor called "Lock before
sleep" (src/dbus/logind/logind_service.cpp), so it locks in front of
ANY suspend logind announces -- power button, `systemctl suspend`,
lid. The idle rungs only cover suspends noctalia itself starts.
Cleared with lockscreen.lock_before_suspend, which is one of the two
conditions in shouldLockBeforeSuspend (config_types.h).
- the power menu default row is `lock_and_suspend`, which locks by
definition. The session panel has a plain `suspend` action that the
idle ladder does not, so here it can simply be swapped.
`lockscreen.enabled = false` was the other way to reach both, and is
rejected on purpose: it would also kill Super+Shift+Control+L, which the
file argues is the one lock a Deck can clear, since a keyboard is
attached by the time anyone types that.
`lock` leaves the power menu because it is unclearable by touch and
sits one mis-tap away. niri renders ONLY the lock surface while locked
(src/niri.rs, the `if self.is_locked()` arm draws that surface and a
solid colour and returns), so no layer-shell client is on screen --
wvkbd included -- and noctalia lockscreen has no keyboard widget of its
own; its widget set is stickers, clock and audio visualizer. An on-screen
keyboard over a lock screen needs a patch to one of the two, not config.
The keybind stays for the keyboard-attached case.
Tested: parsed the file with tomllib and asserted the merged action list
is logout/suspend/reboot/shutdown with lock_before_suspend false.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PHF4XrJ6RQkyktYT5QE5En
|
||
|---|---|---|
| .forgejo/workflows | ||
| .helix | ||
| dotfiles | ||
| issues | ||
| lib | ||
| packages | ||
| prototypes/beefcake-impermanence | ||
| secrets | ||
| .envrc | ||
| .gitignore | ||
| .sops.yaml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| readme.md | ||
| run-claude-sandbox.sh | ||