fix(theme): solid per-theme hyprland borders, matching legacy

v1 forced an accent→accentAlt 45deg gradient on every theme's window
border; the legacy identity themes all used a *solid* border — accent for
nord/retro-82/lumon, the text tone for kanagawa/summer-day/summer-night.

Add a palette-resolved `border` field ({active, inactive}, each a palette
key or literal hex) to the theme schema with accent/overlay defaults in
theme.nix, consume it solid in hyprland.nix, and declare it in every
preset (and the live state). Declaring it everywhere is required because
`nomarchy-theme-sync apply` deep-merges presets — an omitted field would
stick across switches, like colors already are fully specified per theme.

All six identity themes resolve to their exact legacy active border
(verified: nord #81a1c1, retro-82 #faa968, lumon #f2fcff, kanagawa
#dcd7ba, summer-night #d3c6aa, summer-day #5c6a72). nix flake check passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-06-13 20:32:18 +01:00
parent d252f01f17
commit 7c34eed2ca
26 changed files with 117 additions and 8 deletions

View File

@@ -379,10 +379,13 @@ close · `SUPER+1..9` workspaces · `Print` region screenshot.
-**Enable nix-ld by default:** `programs.nix-ld.enable` is on distro-wide
(`modules/nixos/default.nix`), so prebuilt/foreign dynamically-linked
binaries run out of the box.
- **Hyprland border colors off for some themes:** the active/inactive border
colors don't match the legacy branch for several themes — audit
`col.active_border`/`col.inactive_border` generation in
`modules/home/hyprland.nix` against legacy.
- **Hyprland border colors off for some themes:** the cause was v1
forcing an `accent→accentAlt` gradient on every theme; legacy used a
*solid* border (accent for nord/retro-82/lumon, the text tone for
kanagawa/summer-day/summer-night). Added a palette-resolved `border`
field (`{active, inactive}`) to the theme schema (`theme.nix`), consumed
solid in `hyprland.nix`, and declared it in every preset so a switch
always replaces it. All six identity themes now match legacy exactly.
- **Waybar shows non-existent workspaces:** in summer-night/summer-day the
bar renders every workspace icon up-front via `persistent-workspaces` /
`all-outputs` in `themes/summer-{day,night}/waybar.jsonc`. Restore the