feat(displays): hotplug auto-switch for display profiles (item 15b)
All checks were successful
Check / eval (push) Successful in 2m57s
All checks were successful
Check / eval (push) Successful in 2m57s
nomarchy-display-profile gains `match <outputs>`: an exact set match wins, else the largest profile whose named outputs are all connected; any tie prints nothing — the watcher must never flap between ambiguous layouts. nomarchy-display-profile-watch (exec-once when profiles are declared, the keyboard-watcher poll pattern — session units race Hyprland IPC on relogin) reacts to output-set CHANGES only, reads settings.displayProfileAuto from the live state each time (the menu's new Auto-switch row toggles it instantly, no rebuild), and applies via the tool — so an auto-pick persists a concrete profile that the next rebuild bakes. A separate boolean rather than an "auto" pseudo-profile for exactly that bake semantics. Verified: V0 (flake check); V1 — a scratch 4-profile downstream builds; tool + watcher pass bash -n; the match matrix exercised end-to-end: three exact picks, an unambiguous-superset pick, a tie -> none, a no-fit -> none; the watcher is exec-once'd in the rendered config; the menu renders the Auto-switch row. Remains: V3 real dock/undock (HARDWARE-QUEUE, rides the slice-a entry). Slice c (workspace binding) stays, tagged optional. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -228,7 +228,7 @@ two tables below are split along exactly that line.
|
||||
| `nomarchy.viewers.enable` | `true` | Document/image viewers: zathura (Stylix-themed PDF) + imv |
|
||||
| `nomarchy.mime.enable` | `true` | Default "open with" associations (PDF/image/video/text/browser/directory); entries for apps you removed are skipped, so it degrades with the suite |
|
||||
| `nomarchy.monitors` | `[]` | Declarative per-output layout → Hyprland `monitor` rules (applied on hotplug); `,preferred,auto,1` wildcard kept as fallback |
|
||||
| `nomarchy.displayProfiles` | `{}` | Named layouts for the same outputs (docked/undocked/…), switched from System › Display › Profiles: instant via hyprctl, persisted in-flake (`settings.displayProfile`), baked over `nomarchy.monitors` at the next rebuild |
|
||||
| `nomarchy.displayProfiles` | `{}` | Named layouts for the same outputs (docked/undocked/…), switched from System › Display › Profiles: instant via hyprctl, persisted in-flake (`settings.displayProfile`), baked over `nomarchy.monitors` at the next rebuild. The menu's Auto-switch row (`settings.displayProfileAuto`) makes plugging/unplugging outputs apply the matching profile automatically |
|
||||
| `nomarchy.themesDir` | Nomarchy's `themes/` | Where per-theme app overrides are probed |
|
||||
| `nomarchy.package` | overlay's `nomarchy-theme-sync` | The theme/state tool package, overridable if you fork it |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user