feat(displays): declarative nomarchy.monitors + nwg-displays arranger
Add a per-output monitor schema (name / resolution / position / scale / transform / mirror / bitdepth / vrr / disable) that generates Hyprland `monitor` rules, keeping the ,preferred,auto,1 wildcard as the fallback. Hyprland applies the rules on hotplug, so a declared external/dock output arranges itself on connect (no kanshi -- it fights Hyprland's own output management). Default [] -> wildcard only, so no change for existing setups; set wayland.windowManager.hyprland.settings.monitor directly to override. nwg-displays ships behind nomarchy.displays.enable (default true) as an interactive arranger -- a helper to discover values; the declarative config stays the source of truth (its output file isn't sourced). Remaining (roadmap): docked/undocked profile switching, workspace-to-monitor binding. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -233,12 +233,18 @@ how to override it. Items marked ✓ are shipped.
|
||||
surface or split (`nomarchy.services.*` system-side vs home-side packages);
|
||||
and how it relates to `nomarchy.apps.*` (opt-out suite). Unfree entries are
|
||||
already covered (`allowUnfree = true`).
|
||||
- **Display / monitor management:** today Hyprland just uses
|
||||
`monitor = ,preferred,auto,1` (mkDefault). Add a real external-monitor/dock
|
||||
story: declarative per-output config, hotplug profiles (kanshi-style, or
|
||||
Hyprland's own monitor rules), and optionally a GUI arranger (nwg-displays
|
||||
writes Hyprland monitor config). Decide declarative-only vs GUI, and the
|
||||
option shape (`nomarchy.monitors` vs plain Hyprland `monitor` lists).
|
||||
- ✓ **Display / monitor management:** declarative `nomarchy.monitors` (a
|
||||
per-output schema — name/resolution/position/scale/transform/mirror/
|
||||
bitdepth/vrr/disable) generates Hyprland `monitor` rules, keeping the
|
||||
`,preferred,auto,1` wildcard as the fallback; Hyprland applies them on
|
||||
hotplug, so a declared external/dock output arranges itself on connect
|
||||
(no kanshi — it fights Hyprland's own output management). `nwg-displays`
|
||||
ships behind `nomarchy.displays.enable` as an interactive arranger (a
|
||||
helper to find values; the declarative config stays the source of truth —
|
||||
its output file isn't sourced). Remaining: true docked/undocked **profile
|
||||
switching** of the *same* outputs (Hyprland's per-output rules cover the
|
||||
common "external connects → arrange" case, not multi-layout toggles), and
|
||||
optionally workspace-to-monitor binding.
|
||||
- **Night light / blue-light filter:** schedulable colour-temperature shift
|
||||
via `hyprsunset` (Hyprland-native; wlsunset/gammastep are alternatives) —
|
||||
sunset/sunrise or a fixed schedule, with a menu + Waybar toggle.
|
||||
|
||||
Reference in New Issue
Block a user