feat(display): blackout rescue — re-enable a disabled panel on undock
Some checks failed
Check / eval (push) Failing after 1m40s
Some checks failed
Check / eval (push) Failing after 1m40s
Bernardo's question: with "Laptop screen off" active, does the panel come back when the dock is yanked? VM answer (new maintainer harness tools/monitor-fallback.nix, softGL desktop): no — Hyprland 0.55.4 leaves the session with zero active outputs and never re-enables a soft-disabled monitor. rescue_blackout in the display hotplug watcher now re-enables every disabled output (immediate, retried, idempotent keyword + toast) whenever a monitorremoved leaves nothing active; independent of the profile auto-switch and its settings gate. Sharp edge documented rather than hidden: the zero-output state itself crashes Hyprland in the VM ~4/5 runs (aquamarine CBackend::dispatchIdle ABRT within ~0.5s — faster than any userland rescue; a control run removing the external with the panel ACTIVE survives 5/5, so the state is the trigger, not headless removal; crash reproduced with the rescue provably inert, so not caused by it). Rescue ships as defense-in-depth: it recovers every surviving case, and the worst case on real DRM is session-to-greeter on a re-lit panel instead of a black brick. Rider fix: `grep -c .` exits 1 at count zero — the ||-guard on that pipeline silently disabled the rescue exactly when it mattered. Verified: hazard V2 (VM reproduces the dead state); control discriminator 5/5; flake check green. V3 pending: real-dock undock-while-off in HARDWARE-QUEUE (run with nothing important open; crash on real DRM = rework the row to mirror or wait for a Hyprland bump). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -19,6 +19,26 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-12 — undock blackout rescue (interactive follow-up)
|
||||
- **Task:** Bernardo: "if I turn the laptop screen off and undock, does
|
||||
the panel come back?" Answer had to be tested, not recalled.
|
||||
- **Did:** Built tools/monitor-fallback.nix (softGL desktop VM, crib of
|
||||
theme-shot): headless "external" + menu's exact disable + output
|
||||
remove. Verdict: Hyprland 0.55.4 does NOT re-enable → shipped
|
||||
`rescue_blackout` in the display hotplug watcher (immediate + retried
|
||||
keyword re-enable of disabled outputs on zero-active, toast).
|
||||
- **Verified:** V2 for the hazard (VM reproduced the dead state);
|
||||
rescue itself is V1+components — the VM crashes before rescue can act
|
||||
in 4/5 runs (aquamarine ABRT in dispatchIdle on the zero-output
|
||||
state; control with panel active survives 5/5 — discriminator run).
|
||||
Crash predates rescue (run with rescue provably inert also crashed).
|
||||
Also fixed: `grep -c .` exit-1-at-zero disabling the rescue's own
|
||||
trigger. flake check green.
|
||||
- **Pending:** real-dock V3 (HARDWARE-QUEUE, "nothing important open"
|
||||
warning); if real DRM crashes too → rework row (mirror) or wait for
|
||||
Hyprland bump; consider reporting upstream with the coredump.
|
||||
- **Next suggestion:** dock V3 results, then #89 slice 3.
|
||||
|
||||
## 2026-07-12 — dock audio auto-follow + docked menu rows (interactive)
|
||||
- **Task:** Bernardo's dock test (= #87's V3): audio stayed on speakers,
|
||||
had to hand-tweak EasyEffects; wants docked Display/Audio menu options.
|
||||
|
||||
Reference in New Issue
Block a user