feat(power): clamshell — ignore lid suspend when docked (#86)
Some checks failed
Check / eval (push) Has been cancelled

Explicit HandleLidSwitchDocked=ignore under services.logind so closing
the lid with an external display connected does not suspend. Undocked
lid path left to upstream defaults. checks.clamshell-logind asserts the
baked logind.conf and active logind; real multi-monitor lid V3 queued.

Verified: V2 — flake check --no-build; checks.clamshell-logind green.
V3 pending: HARDWARE-QUEUE #86 lid+external on a laptop.
This commit is contained in:
Bernardo Magri
2026-07-11 10:32:18 +01:00
parent ce05eed754
commit 27f18e4ccc
9 changed files with 73 additions and 13 deletions

View File

@@ -389,6 +389,11 @@ Design/decision records and a running log of shipped work (items marked
✓ **Hardware hall of fame (#85, `VISION § F`):** HARDWARE.md §9
install-tested table (T14s Gen 4, Latitude 5410/5310) + “send your DMI
line” PR invite; §10 points contributors at the table.
✓ **Clamshell logind (#86, `VISION § C`):** explicit
`services.logind.settings.Login.HandleLidSwitchDocked = "ignore"` when
power management is on (systemd docked = external display present).
Undocked lid suspend left to upstream. `checks.clamshell-logind` asserts
logind.conf + active logind. Real lid+external V3 in HARDWARE-QUEUE.
- ✓ **Hibernate double-unlock:** on resume from hibernate the LUKS
passphrase already gates the machine, but locking hyprlock before sleep
meant a second password. Fixed by *not locking* before an encrypted