fix(display): docked idle wake + dump without SSH (#127)
All checks were successful
Check / eval (push) Successful in 3m44s
All checks were successful
Check / eval (push) Successful in 3m44s
Recover from DPMS/lock blackout without a second machine: undock/enable always issue dpms on; hypridle on-resume and after_sleep run nomarchy-display-wake (zero-output undock rescue + auto-dump). nomarchy-display-dump writes ~/nomarchy-display-dump-*.txt (SUPER+SHIFT+D or Ctrl+Alt+F3 TTY). HARDWARE-QUEUE #127 no longer requires SSH. V1: nix flake check --no-build. V3: docked idle on AMD box still open.
This commit is contained in:
@@ -55,10 +55,16 @@ or (b) undock → `nomarchy-display-transition undock` re-enabling the
|
||||
panel. Both failed. `after_sleep_cmd` only does `hyprctl dispatch dpms on`
|
||||
and never re-enables a disabled internal.
|
||||
|
||||
**Progress 2026-07-15 (no-SSH path + recovery hardening):** undock/enable
|
||||
always end with `dpms on`; hypridle `on-resume` / `after_sleep` run
|
||||
`nomarchy-display-wake` (dpms + zero-output undock rescue + auto-dump);
|
||||
`nomarchy-display-dump` + SUPER+SHIFT+D + TTY (`Ctrl+Alt+F3`) so capture
|
||||
does not need SSH. V3 still needs a real docked idle repro.
|
||||
|
||||
**Pass:** docked on AC, idle past lock + DPMS; external KB/mouse restores
|
||||
the external; if the external is unplugged while black, eDP comes back
|
||||
without reboot; journal shows display-watch undock `result=ok` when the
|
||||
cable leaves. Capture steps in HARDWARE-QUEUE.
|
||||
cable leaves. Capture steps in HARDWARE-QUEUE (TTY dump preferred).
|
||||
|
||||
## NEXT
|
||||
|
||||
|
||||
@@ -57,25 +57,27 @@ Everything else below stays open; order is convenience, not a gate.
|
||||
was needed; a long Grok session died with the brick.
|
||||
**Important distinction:** on AC, hypridle is *not* supposed to
|
||||
suspend — only lock (5m) + `dpms off` (10m). Confirm next time with
|
||||
`journalctl -b | rg -i 'Suspending|PM: suspend'` vs hypridle/hyprlock
|
||||
lines so we know DPMS-stuck vs real S3.
|
||||
**Repro / capture (next time, before reboot if possible — SSH/TTY):**
|
||||
1. Dock, confirm dock mode (eDP disabled in `hyprctl monitors all -j`).
|
||||
2. Leave idle past 10 minutes (or force: `loginctl lock-session` then
|
||||
`hyprctl dispatch dpms off`).
|
||||
3. Try external KB key / mouse move — does external wake?
|
||||
4. Unplug external — does eDP return within a few seconds?
|
||||
5. Capture (SSH from another machine if the seat is blind):
|
||||
```
|
||||
journalctl --user -t nomarchy-display-watch -t nomarchy-display-transition \
|
||||
-t hypridle --since '-30 min'
|
||||
journalctl -b --since '-30 min' | rg -i 'suspend|sleep|dpms|lid|hyprlock'
|
||||
hyprctl monitors all -j; hyprctl keyword monitor 2>&1 | head
|
||||
systemd-inhibit --list
|
||||
```
|
||||
**Pass:** input wakes the external while docked; undock while black
|
||||
restores eDP without power cycle. Related: docking recovery round 8
|
||||
(awake undock) and BACKLOG #127.
|
||||
dump file or journal for `Suspending|PM: suspend` vs hypridle lines
|
||||
so we know DPMS-stuck vs real S3.
|
||||
**No SSH required** (post-#127 tooling): Caps Lock alive ⇒ machine is
|
||||
up. Prefer **local TTY** over SSH:
|
||||
1. `Ctrl+Alt+F3` → log in on the text console.
|
||||
2. `nomarchy-display-wake` — try recovery (dpms on + undock rescue).
|
||||
3. `nomarchy-display-dump` — writes `~/nomarchy-display-dump-*.txt`
|
||||
(monitors, journals, DRM status). Open that file after the seat
|
||||
is usable; no second machine needed.
|
||||
4. Optional while unlocked: `SUPER+SHIFT+D` runs the same dump.
|
||||
Auto: undock enable-fail and zero-output wake also dump under `~/`.
|
||||
**Repro (after `nomarchy-home` + relogin so hypridle/watcher pick up):**
|
||||
1. Dock, confirm dock mode (eDP disabled).
|
||||
2. Idle past 10 min **or** force: `loginctl lock-session` then
|
||||
`hyprctl dispatch dpms off`.
|
||||
3. External KB/mouse — external should wake (`nomarchy-display-wake`
|
||||
path). If not: TTY → dump → note.
|
||||
4. Unplug external while black — eDP should return (undock + `dpms on`).
|
||||
**Pass:** input wakes external while docked; undock while black restores
|
||||
eDP without reboot; dump files only appear on real failures.
|
||||
Related: docking recovery round 8 (awake undock) and BACKLOG #127.
|
||||
- [ ] **#96 battery-limit row on threshold-less firmware (Acer M5-481T)** —
|
||||
on the Acer (live or installed session with the commit carrying this
|
||||
entry): open System (`SUPER+CTRL+I`). **Pass:** a "Battery limit" row
|
||||
|
||||
@@ -19,6 +19,15 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-15 — #127 no-SSH dump + docked idle wake harden
|
||||
- **Task:** Tackle docked idle blackout without needing SSH mid-brick.
|
||||
- **Did:** `nomarchy-display-dump` / `nomarchy-display-wake`; undock always
|
||||
`dpms on`; hypridle resume/after_sleep → wake rescue; SUPER+SHIFT+D;
|
||||
HARDWARE-QUEUE #127 rewritten for Ctrl+Alt+F3 TTY path.
|
||||
- **Verified:** V0/V1 flake check. V3: docked idle on AMD box.
|
||||
- **Pending:** real repro; keep #127 open until V3 pass.
|
||||
- **Next suggestion:** Bernardo runs forced DPMS dock test + TTY dump if needed.
|
||||
|
||||
## 2026-07-15 — #115 suspend-then-hibernate (1h, battery-only + menu)
|
||||
- **Task:** Human settled delay=1h, battery only, menu enable/disable.
|
||||
- **Did:** `nomarchy-suspend` + logind/sleep bridge from
|
||||
|
||||
Reference in New Issue
Block a user