Use theme config templates with singular color definition (#4053)

* Attempt to templaterize the theme specific files

* Cleanup

* Slim down

* Combine render into -set

* Pull out the dynamic template rendering again, but simpler

* Fix vars

* Variables are lowercase

* Better presentation

* Fix missing colors

* Provide stripped values too

* Fix colors for regular hex format

* Bring back explicit btop themes

They're too involved to derive from a basic color set

* Make an atomic swap of the theme directories

* No longer used by walker to cancel

* Explain why

* Remove redundant const

* Consistent const naming

* No longe have $THEMES_DIR

* Correct the blue

* Set opencode colors too

* Fix colors for readability

* Move the templates together with the others in default

* Split user themes and default themes

* Fix paths

* Look for both user themes and default themes

Plus speed things up

* Migrate to the new setup where default themes live inside omarchy

* Explicitly store the name of the current theme

* Cleanup

* No longer need omarchy-theme-next since themes are now fully rendered, not symlinks

* Get current theme name from the new theme.name file

* Look for user background images in dedicated directory

* Need yq for toml

* Need yq to parse colors.toml

* Look for backgrounds matching the new theme.name

We no longer have symlinks

* Migrate existing user backgrounds to the new proper location

* Install user backgrounds in the correct path

* Fix quoting

* Just rely on the system theme for opencode and get ready for USRSIG2 being available to live reload

* Fix template generation for rgb colors
This commit is contained in:
David Heinemeier Hansson
2026-01-03 18:22:14 -08:00
committed by GitHub
parent de2757466b
commit 4a07b94cb6
174 changed files with 809 additions and 3234 deletions

View File

@@ -1,28 +0,0 @@
[colors]
[colors.primary]
background = "#0B0C16"
foreground = "#ddf7ff"
[colors.normal]
black = "#0B0C16"
red = "#50f872"
green = "#4fe88f"
yellow = "#50f7d4"
blue = "#829dd4"
magenta = "#86a7df"
cyan = "#7cf8f7"
white = "#85E1FB"
[colors.bright]
black = "#6a6e95"
red = "#85ff9d"
green = "#9cf7c2"
yellow = "#a4ffec"
blue = "#c4d2ed"
magenta = "#cddbf4"
cyan = "#d1fffe"
white = "#ddf7ff"
[colors.cursor]
text = "#0B0C16"
cursor = "#ddf7ff"

View File

@@ -0,0 +1,26 @@
accent = "#829dd4"
active_border_color = "#829dd4"
active_tab_background = "#0B0C16"
cursor = "#ddf7ff"
foreground = "#ddf7ff"
background = "#0B0C16"
selection_foreground = "#0B0C16"
selection_background = "#ddf7ff"
color0 = "#0B0C16"
color1 = "#50f872"
color2 = "#4fe88f"
color3 = "#50f7d4"
color4 = "#829dd4"
color5 = "#86a7df"
color6 = "#7cf8f7"
color7 = "#85E1FB"
color8 = "#6a6e95"
color9 = "#85ff9d"
color10 = "#9cf7c2"
color11 = "#a4ffec"
color12 = "#c4d2ed"
color13 = "#cddbf4"
color14 = "#d1fffe"
color15 = "#ddf7ff"

View File

@@ -1,23 +0,0 @@
# Background and foreground colors
background = #0B0C16
foreground = #ddf7ff
# Standard colors
palette = 0=#0B0C16
palette = 1=#50f872
palette = 2=#4fe88f
palette = 3=#50f7d4
palette = 4=#829dd4
palette = 5=#86a7df
palette = 6=#7cf8f7
palette = 7=#85E1FB
# Bright colors
palette = 8=#6a6e95
palette = 9=#85ff9d
palette = 10=#9cf7c2
palette = 11=#a4ffec
palette = 12=#c4d2ed
palette = 13=#cddbf4
palette = 14=#d1fffe
palette = 15=#ddf7ff

View File

@@ -1,94 +0,0 @@
@define-color foreground #ddf7ff;
@define-color background #0B0C16;
@define-color accent #829dd4;
@define-color muted #6a6e95;
@define-color card_bg #141526;
@define-color text_dark #0B0C16;
@define-color accent_hover #c4d2ed;
@define-color selected_tab #829dd4;
@define-color text #ddf7ff;
* {
all: unset;
font-family: JetBrains Mono NF;
color: @foreground;
font-weight: bold;
font-size: 16px;
}
.window {
background: alpha(@background, 0.95);
border: solid 2px @accent;
margin: 4px;
padding: 18px;
}
tabs {
padding: 0.5rem 1rem;
}
tabs > tab {
margin-right: 1rem;
}
.tab-label {
color: @text;
transition: all 0.2s ease;
}
tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label {
text-decoration: underline currentColor;
color: @selected_tab;
}
tabs > tab:focus > .tab-label {
color: @foreground;
}
.page {
padding: 1rem;
}
.image-label {
font-size: 12px;
padding: 0.25rem;
}
flowboxchild > .card, button > .card {
transition: all 0.2s ease;
border: solid 2px transparent;
border-color: @background;
border-radius: 5px;
background-color: @card_bg;
padding: 5px;
}
flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card {
border: solid 2px @accent;
}
.image {
border-radius: 5px;
}
.region-button {
padding: 0.5rem 1rem;
border-radius: 5px;
background-color: @accent;
color: @text_dark;
transition: all 0.2s ease;
}
.region-button > label {
color: @text_dark;
}
.region-button:not(:disabled):hover, .region-button:not(:disabled):focus {
background-color: @accent_hover;
color: @text_dark;
}
.region-button:disabled {
background-color: @muted;
color: @background;
}

View File

@@ -1,12 +0,0 @@
# This file is not a full hyprland configuration.
# It is intended to be included in your main hyprland.conf.
$activeBorderColor = rgba(26a269ee) rgba(2ec27eee) 45deg
general {
col.active_border = $activeBorderColor
}
group {
col.border_active = $activeBorderColor
}

View File

@@ -1,6 +0,0 @@
$color = rgba(11, 12, 22, 1)
$inner_color = rgba(11, 12, 22, 0.66)
$outer_color = rgba(134, 167, 223, 1)
$font_color = rgba(221, 247, 255, 1)
$placeholder_color = rgba(221, 247, 255, 0.7)
$check_color = rgba(124, 248, 247, 1)

View File

@@ -1,34 +0,0 @@
background #0B0C16
foreground #ddf7ff
# black
color0 #0B0C16
color8 #6a6e95
# red
color1 #50f872
color9 #85ff9d
# green
color2 #4fe88f
color10 #9cf7c2
# yellow
color3 #50f7d4
color11 #a4ffec
# blue
color4 #829dd4
color12 #c4d2ed
# magenta
color5 #86a7df
color13 #cddbf4
#cyan
color6 #7cf8f7
color14 #d1fffe
#white
color7 #85E1FB
color15 #ddf7ff

View File

@@ -1,21 +0,0 @@
text-color=#ddf7ff
border-color=#86a7df
background-color=#0B0C16
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false

View File

@@ -1,5 +0,0 @@
@define-color background-color #0B0C16;
@define-color border-color #6a6e95;
@define-color label #ddf7ff;
@define-color image #ddf7ff;
@define-color progress #50f7d4;

View File

@@ -1,6 +0,0 @@
@define-color selected-text #829dd4;
@define-color text #ddf7ff;
@define-color base #0B0C16;
@define-color border #6a6e95;
@define-color foreground #ddf7ff;
@define-color background #0B0C16;

View File

@@ -1,2 +0,0 @@
@define-color background #0B0C16;
@define-color foreground #ddf7ff;