feat(power): clamshell — ignore lid suspend when docked (#86)
Some checks failed
Check / eval (push) Has been cancelled
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:
@@ -55,13 +55,6 @@ runtime-computed `resume_offset` into the boot cmdline, and the dev box runs
|
||||
exactly this layout (`/proc/cmdline` verified) but isn't Nomarchy. Steps in
|
||||
HARDWARE-QUEUE. Close #76 on PASS.
|
||||
|
||||
### 86. Clamshell dock: lid + external monitor (`VISION § C`)
|
||||
Lid closed with external monitor connected must not suspend
|
||||
(`logind` `lidSwitchDocked` / `ExternalPower` audit + display-profile
|
||||
interplay); wake behaves. Display profiles + auto-switch already exist —
|
||||
this is the lid/suspend edge case. VM where possible; residual V3 on
|
||||
real dock hardware.
|
||||
|
||||
### 87. Dock audio sink follows plug/unplug (`VISION § C`)
|
||||
Default audio sink: dock sink on plug, internal on unplug (WirePlumber
|
||||
policy or udev hook). Complements #86; can ship independently.
|
||||
@@ -118,8 +111,8 @@ high-ROI, etc.) live in the journal + ROADMAP — not here.*
|
||||
2026-07-10). Keep #59 commented install guidance; no
|
||||
`nomarchy.hardware.nvidia.*` until a hybrid maintainer + queue.
|
||||
|
||||
_(#80–#83 + #85 shipped 2026-07-11. #84 split → **NEXT #86–#87** dock
|
||||
clamshell + dock audio.)_
|
||||
_(#80–#83 + #85–#86 shipped 2026-07-11. Remaining dock slice: **#87**
|
||||
dock audio. #86 V3 clamshell on real external display → HARDWARE-QUEUE.)_
|
||||
|
||||
### v1.0 pointer
|
||||
|
||||
|
||||
@@ -11,6 +11,14 @@ the **T14s** (webcam case).
|
||||
|
||||
## Any machine (dev box is fine)
|
||||
|
||||
- [ ] **#86 clamshell lid + external display** — V2 asserts
|
||||
`HandleLidSwitchDocked=ignore` in logind.conf. On a laptop with a
|
||||
real external monitor: open a session, plug external, close lid —
|
||||
machine must **stay awake** (no suspend); external panel remains
|
||||
usable (or wakes with keyboard if DPMS). Unplug external, close lid
|
||||
— should suspend as usual. Optional: with a docked display-profile
|
||||
(`eDP-1` disable), confirm clamshell layout still looks right after
|
||||
lid close. Pass = no surprise suspend when docked.
|
||||
- [ ] **#55 fingerprint enroll on real reader** — with
|
||||
`nomarchy.hardware.fingerprint.enable` and a physical reader: System ›
|
||||
Fingerprint › Enroll a finger; List shows it; Verify succeeds; optional
|
||||
|
||||
@@ -19,6 +19,18 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-11 — #86 clamshell HandleLidSwitchDocked
|
||||
- **Task:** NEXT #86 — lid closed + external monitor must not suspend.
|
||||
- **Did:** Explicit `HandleLidSwitchDocked=ignore` in
|
||||
`modules/nixos/power.nix` (logind settings.Login). Undocked lid
|
||||
behaviour unchanged. idle.nix comment corrected. `checks.clamshell-logind`
|
||||
asserts conf + active logind. V3 steps in HARDWARE-QUEUE. Closed #86.
|
||||
- **Verified:** **V2** — `nix flake check --no-build`;
|
||||
`checks.clamshell-logind` green (`HandleLidSwitchDocked=ignore` +
|
||||
logind active).
|
||||
- **Pending:** V3 real lid+external on laptop (HARDWARE-QUEUE).
|
||||
- **Next suggestion:** #87 dock audio sink follow.
|
||||
|
||||
## 2026-07-11 — #85 hardware hall of fame + split #84
|
||||
- **Task:** NEXT #85 docs hall of fame; #84 was `[big]` → split.
|
||||
- **Did:** HARDWARE.md §9 install-tested table (T14s Gen 4 AMD, Latitude
|
||||
|
||||
Reference in New Issue
Block a user