Files
mpuchstein d0d130bcd4 hypr: rework window signals to apex-neon v2 spine
Red is reserved for danger, violet for attention. Active window border now
violet (focus->iris) with a violet glow; urgent windows get a red border via a
window.urgent handler (cleared on focus). Inactive windows wear a dim-cyan HUD
border + faint cyan glow. Groups are structural blue; group-locked is amber.
Groupbar active tab is an info gradient (blue frame + cyan interior), keeping
violet scarce to the window border. Mirrors the regenerated apex dist conf.
2026-06-04 04:30:51 +02:00

137 lines
6.4 KiB
Cheetah

{{- $themeName := .chezmoi.config.data.theme -}}
-- Theme Bridge: {{ $themeName }}
local theme = {}
{{- if eq $themeName "apex-neon" }}
-- mirrors ~/Dev/Themes/apex/dist/hyprland/apex-neon-colors.conf (v2 spine)
theme.base = "rgb(070709)"
theme.surface = "rgb(101218)"
theme.overlay = "rgb(262a34)"
theme.muted = "rgb(383d49)"
theme.text = "rgb(e6e8ec)"
theme.love = "rgb(ff0044)"
theme.gold = "rgb(ffb700)"
theme.pine = "rgb(00ff99)"
theme.foam = "rgb(00eaff)"
theme.iris = "rgb(9d00ff)"
theme.focus = "rgb(d68fff)" -- attention violet — "you are here"
theme.blue = "rgb(5b8cff)" -- structural — window groups
theme.rose = "rgb(ff3b3b)"
theme.splash_text = "rgba(e6e8ecee)"
theme.dec_shadow = "rgba(000000ee)"
theme.glow = "rgba(d68fffee)" -- active-window glow = attention violet
theme.glow_inactive = "rgba(00eaff33)" -- inactive glow = faint cyan HUD chrome
-- v2 signal vocabulary: inactive = dim cyan · active = attention violet · urgent = danger red
theme.border_active = { colors = { "rgba(d68fffff)", "rgba(9d00ffff)" }, angle = 45 }
theme.border_inactive = { colors = { "rgba(00eaff66)", "rgba(10121844)" }, angle = 45 }
-- urgent window = danger red (applied per-window by the window.urgent handler in rules.lua)
theme.border_urgent = { colors = { "rgba(ff0044ff)", "rgba(ff3b3bff)" }, angle = 45 }
theme.border_nogroup_active = { colors = { "rgba(d68fffff)", "rgba(9d00ffff)" }, angle = 45 }
theme.border_nogroup_inactive = { colors = { "rgba(00eaff66)", "rgba(10121844)" }, angle = 45 }
-- group = structural blue · group-locked = warning amber
theme.border_group_active = { colors = { "rgba(5b8cffff)", "rgba(5b8cffaa)" }, angle = 45 }
theme.border_group_inactive = { colors = { "rgba(383d4966)", "rgba(10121866)" }, angle = 45 }
theme.border_grouplocked_active = { colors = { "rgba(ffb700ff)", "rgba(ffb700aa)" }, angle = 45 }
theme.border_grouplocked_inactive = { colors = { "rgba(ffb70066)", "rgba(10121866)" }, angle = 45 }
theme.groupbar_text = "rgba(070709ff)"
theme.groupbar_text_inactive = "rgba(e6e8ecaa)"
-- active tab = info gradient: blue frame + cyan interior (the shown member); inactive = dim blue.
-- attention violet stays scarce — reserved for the active WINDOW border, not this chrome.
theme.groupbar_active = { colors = { "rgba(5b8cffff)", "rgba(00eaffff)", "rgba(00eaffff)", "rgba(00eaffff)", "rgba(00eaffff)", "rgba(00eaffff)", "rgba(5b8cffff)" }, angle = 0 }
theme.groupbar_inactive = { colors = { "rgba(5b8cff99)", "rgba(5b8cff44)" } }
theme.groupbar_grouplocked_active = { colors = { "rgba(ffb70088)", "rgba(ffb700ff)", "rgba(ffb700ff)", "rgba(ffb700ff)", "rgba(ffb700ff)", "rgba(ffb700ff)", "rgba(ffb70088)" } }
theme.groupbar_grouplocked_inactive = { colors = { "rgba(ffb70099)", "rgba(ffb70044)" } }
{{- else if eq $themeName "apex-aeon" }}
-- mirrors ~/Dev/Themes/apex/dist/hyprland/apex-aeon-colors.conf (v2 spine)
theme.base = "rgb(f1f3f7)"
theme.surface = "rgb(e7eaf0)"
theme.overlay = "rgb(c2c8d4)"
theme.muted = "rgb(c8cdd8)"
theme.text = "rgb(16181d)"
theme.love = "rgb(c8003a)"
theme.gold = "rgb(a86b00)"
theme.pine = "rgb(00875a)"
theme.foam = "rgb(0080a6)"
theme.iris = "rgb(6a1fb8)"
theme.focus = "rgb(7c2fd6)" -- attention violet — "you are here"
theme.blue = "rgb(1633a0)" -- structural — window groups
theme.rose = "rgb(9e0030)"
theme.splash_text = "rgba(16181dee)"
theme.dec_shadow = "rgba(000000ee)"
theme.glow = "rgba(7c2fd6ee)" -- active-window glow = attention violet
theme.glow_inactive = "rgba(0080a633)" -- inactive glow = faint cyan HUD chrome
-- v2 signal vocabulary: inactive = dim cyan · active = attention violet · urgent = danger red
theme.border_active = { colors = { "rgba(7c2fd6ff)", "rgba(6a1fb8ff)" }, angle = 45 }
theme.border_inactive = { colors = { "rgba(0080a666)", "rgba(e7eaf044)" }, angle = 45 }
-- urgent window = danger red (applied per-window by the window.urgent handler in rules.lua)
theme.border_urgent = { colors = { "rgba(c8003aff)", "rgba(9e0030ff)" }, angle = 45 }
theme.border_nogroup_active = { colors = { "rgba(7c2fd6ff)", "rgba(6a1fb8ff)" }, angle = 45 }
theme.border_nogroup_inactive = { colors = { "rgba(0080a666)", "rgba(e7eaf044)" }, angle = 45 }
-- group = structural blue · group-locked = warning amber
theme.border_group_active = { colors = { "rgba(1633a0ff)", "rgba(1633a0aa)" }, angle = 45 }
theme.border_group_inactive = { colors = { "rgba(c8cdd866)", "rgba(e7eaf066)" }, angle = 45 }
theme.border_grouplocked_active = { colors = { "rgba(a86b00ff)", "rgba(a86b00aa)" }, angle = 45 }
theme.border_grouplocked_inactive = { colors = { "rgba(a86b0066)", "rgba(e7eaf066)" }, angle = 45 }
theme.groupbar_text = "rgba(f1f3f7ff)"
theme.groupbar_text_inactive = "rgba(16181daa)"
-- active tab = info gradient: blue frame + cyan interior (the shown member); inactive = dim blue.
-- attention violet stays scarce — reserved for the active WINDOW border, not this chrome.
theme.groupbar_active = { colors = { "rgba(1633a0ff)", "rgba(0080a6ff)", "rgba(0080a6ff)", "rgba(0080a6ff)", "rgba(0080a6ff)", "rgba(0080a6ff)", "rgba(1633a0ff)" }, angle = 0 }
theme.groupbar_inactive = { colors = { "rgba(1633a099)", "rgba(1633a044)" } }
theme.groupbar_grouplocked_active = { colors = { "rgba(a86b0088)", "rgba(a86b00ff)", "rgba(a86b00ff)", "rgba(a86b00ff)", "rgba(a86b00ff)", "rgba(a86b00ff)", "rgba(a86b0088)" } }
theme.groupbar_grouplocked_inactive = { colors = { "rgba(a86b0099)", "rgba(a86b0044)" } }
{{- end }}
-- Apply colors to config
hl.config({
general = {
["col.active_border"] = theme.border_active,
["col.inactive_border"] = theme.border_inactive,
["col.nogroup_border"] = theme.border_nogroup_inactive,
["col.nogroup_border_active"] = theme.border_nogroup_active
},
decoration = {
shadow = {
color = theme.dec_shadow
},
glow = {
color = theme.glow,
color_inactive = theme.glow_inactive
}
},
group = {
["col.border_active"] = theme.border_group_active,
["col.border_inactive"] = theme.border_group_inactive,
["col.border_locked_active"] = theme.border_grouplocked_active,
["col.border_locked_inactive"] = theme.border_grouplocked_inactive,
groupbar = {
text_color = theme.groupbar_text,
text_color_inactive = theme.groupbar_text_inactive,
["col.active"] = theme.groupbar_active,
["col.inactive"] = theme.groupbar_inactive,
["col.locked_active"] = theme.groupbar_grouplocked_active,
["col.locked_inactive"] = theme.groupbar_grouplocked_inactive
}
},
misc = {
["col.splash"] = theme.splash_text
}
})
return theme