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

@@ -18,6 +18,10 @@
"warn": "#df8e1d",
"bad": "#d20f39"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#bcc0cc",
"#d20f39",

View File

@@ -18,6 +18,10 @@
"warn": "#f9e2af",
"bad": "#f38ba8"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#45475a",
"#f38ba8",

View File

@@ -18,6 +18,10 @@
"warn": "#E9BB4F",
"bad": "#ED5B5A"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#060B1E",
"#ED5B5A",

View File

@@ -18,6 +18,10 @@
"warn": "#dbbc7f",
"bad": "#e67e80"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#475258",
"#e67e80",

View File

@@ -18,6 +18,10 @@
"warn": "#D0A215",
"bad": "#D14D41"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#100F0F",
"#D14D41",

View File

@@ -18,6 +18,10 @@
"warn": "#d8a657",
"bad": "#ea6962"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#3c3836",
"#ea6962",

View File

@@ -18,6 +18,10 @@
"warn": "#50f7d4",
"bad": "#50f872"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#0B0C16",
"#50f872",

View File

@@ -18,6 +18,10 @@
"warn": "#c0a36e",
"bad": "#c34043"
},
"border": {
"active": "text",
"inactive": "overlay"
},
"ansi": [
"#090618",
"#c34043",

View File

@@ -18,6 +18,10 @@
"warn": "#6fa4c9",
"bad": "#4d86b0"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#1b2d40",
"#4d86b0",

View File

@@ -18,6 +18,10 @@
"warn": "#b91c1c",
"bad": "#D35F5F"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#333333",
"#D35F5F",

View File

@@ -18,6 +18,10 @@
"warn": "#b36d43",
"bad": "#685742"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#000000",
"#685742",

View File

@@ -18,6 +18,10 @@
"warn": "#ebcb8b",
"bad": "#bf616a"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#3b4252",
"#bf616a",

View File

@@ -18,6 +18,10 @@
"warn": "#459451",
"bad": "#FF5345"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#23372B",
"#FF5345",

View File

@@ -18,6 +18,10 @@
"warn": "#e97b3c",
"bad": "#f85525"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#00172e",
"#f85525",

View File

@@ -18,6 +18,10 @@
"warn": "#f9cc6c",
"bad": "#fd6883"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#72696a",
"#fd6883",

View File

@@ -18,6 +18,10 @@
"warn": "#ea9d34",
"bad": "#b4637a"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#f2e9e1",
"#b4637a",

View File

@@ -18,6 +18,10 @@
"warn": "#dfa000",
"bad": "#f85552"
},
"border": {
"active": "text",
"inactive": "overlay"
},
"ansi": [
"#5c6a72",
"#f85552",

View File

@@ -18,6 +18,10 @@
"warn": "#d9bb80",
"bad": "#e68183"
},
"border": {
"active": "text",
"inactive": "overlay"
},
"ansi": [
"#3c474d",
"#e68183",

View File

@@ -18,6 +18,10 @@
"warn": "#e0af68",
"bad": "#f7768e"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#32344a",
"#f7768e",

View File

@@ -18,6 +18,10 @@
"warn": "#cecece",
"bad": "#a4a4a4"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#0d0d0d",
"#a4a4a4",

View File

@@ -18,6 +18,10 @@
"warn": "#4a4a4a",
"bad": "#2a2a2a"
},
"border": {
"active": "accent",
"inactive": "overlay"
},
"ansi": [
"#ffffff",
"#2a2a2a",