diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-11 18:45:15 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-11 18:45:15 +0200 |
| commit | ee39bd927e056c2dae9d61230a95a05715b3a8c6 (patch) | |
| tree | 5539cb2dba13acb2f2b8f607d691f9b9a1dbd858 | |
| parent | a77f24d657a6091022754adb1b30750748132216 (diff) | |
| download | unified-desktop-theme-ee39bd927e056c2dae9d61230a95a05715b3a8c6.tar.gz unified-desktop-theme-ee39bd927e056c2dae9d61230a95a05715b3a8c6.zip | |
feat(palette): add five more schemes, and parse-check them all
Adds Catppuccin Frappe and Mocha, which share Macchiato's colour names so
their role maps are the same mapping against different values, and Material
Ocean, Palenight and Darker, which bring their own names and their own maps.
Nine schemes now, all dark.
Material ships one accent per hue and three greys where the roles want five
depths, so each Material palette carries four interpolated shades, marked as
not upstream, and its bright_* terminal slots name the same colours as the
normal ones.
The selftest now renders every scheme to a temp directory and has rofi parse
every theme, not just check that roles resolve. Resolving was never the
property that mattered: the Tokyo Night breakage resolved fine and still
emitted a palette the themes could not use. Verified the check fails when a
name is removed.
Catppuccin Latte is deliberately absent. It is light, and that is not a role
remap: homepage is pinned theme: dark and the generated card overrides target
its dark-mode class.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
| -rw-r--r-- | AGENTS.md | 16 | ||||
| -rwxr-xr-x | bin/udt-palette | 46 | ||||
| -rw-r--r-- | palette/frappe.conf | 39 | ||||
| -rw-r--r-- | palette/material-darker.conf | 30 | ||||
| -rw-r--r-- | palette/material-ocean.conf | 32 | ||||
| -rw-r--r-- | palette/material-palenight.conf | 30 | ||||
| -rw-r--r-- | palette/mocha.conf | 39 | ||||
| -rw-r--r-- | palette/roles-frappe.conf | 122 | ||||
| -rw-r--r-- | palette/roles-material-darker.conf | 108 | ||||
| -rw-r--r-- | palette/roles-material-ocean.conf | 108 | ||||
| -rw-r--r-- | palette/roles-material-palenight.conf | 108 | ||||
| -rw-r--r-- | palette/roles-mocha.conf | 122 | ||||
| -rw-r--r-- | templates/conky.conf | 18 | ||||
| -rw-r--r-- | templates/dunstrc | 16 | ||||
| -rw-r--r-- | templates/homepage/custom.css | 36 |
15 files changed, 828 insertions, 42 deletions
@@ -27,8 +27,13 @@ state, so switching does not dirty the working tree and two machines sharing this repo can differ. It is the one exception to this repo holding the canonical copy of everything. -Four schemes ship: `macchiato`, `tokyo-night`, `nord`, `dracula`. Switching is -one line in `~/.config/udt/roles.conf` plus `./install.sh`. +Nine schemes ship: `macchiato`, `frappe`, `mocha`, `tokyo-night`, `nord`, `dracula`, +`material-ocean`, `material-palenight`, `material-darker`. Switching is one line in +`~/.config/udt/roles.conf` plus `./install.sh`. + +All nine are dark. A light scheme is not a role remap: homepage is pinned +`theme: dark` and its generated card overrides target the dark-mode class, and +`install.sh` would need to flip that setting too. Generated files are gitignored, because tracking them would turn every scheme switch into a diff. Editing one is pointless: the next install overwrites it. @@ -54,8 +59,11 @@ palette name with two optional modifiers, `name/75` for 75% alpha and is darker than the darkest colour any of these schemes ships. **Adding a scheme means adding two files, never editing a consumer.** Every -scheme must define the same role set; `udt-palette --selftest` fails if one -drifts, which is what stops a switch from breaking a config nobody looked at. +scheme must define the same role set, and `udt-palette --selftest` enforces +that, then has rofi parse every theme under every scheme. Both checks exist +because both failures shipped: a role set can drift silently, and a palette +that resolves can still emit a theme rofi refuses to parse, which stops every +launcher on the desktop. ## The accent diff --git a/bin/udt-palette b/bin/udt-palette index 1df0c4f..18dc0b1 100755 --- a/bin/udt-palette +++ b/bin/udt-palette @@ -417,8 +417,8 @@ TARGETS = [ ] -def generate(roles_path, out_dir): - scheme, palette, res, snap_names = load(roles_path) +def generate(roles_path, out_dir, scheme=None): + scheme, palette, res, snap_names = load(roles_path, scheme=scheme) written = [] for target, fn, template in TARGETS: dest = out_dir / target @@ -437,6 +437,44 @@ def generate(roles_path, out_dir): return scheme, written +def check_rofi_parses(scheme): + """Render `scheme` to a temp dir and have rofi parse every theme. + + The role checks below prove a scheme resolves, not that what it emits is + valid. A palette missing a name the themes reference parses as a broken + theme and every launcher stops opening, which is how exactly that bug + shipped once. rofi needs no display for -dump-theme. + """ + import shutil + import subprocess + import tempfile + + if not shutil.which("rofi"): + return None + + with tempfile.TemporaryDirectory() as tmp: + out = Path(tmp) + generate(None, out, scheme=scheme) + udt = out / "rofi" / "udt" + # The themes @import siblings, so they need the whole directory. + for extra in (REPO / "rofi" / "udt").glob("*.rasi"): + if not (udt / extra.name).exists(): + shutil.copy(extra, udt / extra.name) + # accent.rasi is generated per wallpaper; seed it so themes resolve. + (udt / "accent.rasi").write_text("* { accent: #ffffffff; }\n") + + for theme in sorted(udt.glob("*.rasi")): + if theme.name in ("palette.rasi", "accent.rasi", "common.rasi"): + continue + proc = subprocess.run( + ["rofi", "-no-config", "-theme", str(theme), "-dump-theme"], + capture_output=True, text=True) + if "Failed to parse" in proc.stderr: + raise AssertionError( + f"{scheme}: rofi cannot parse {theme.name}\n{proc.stderr.strip()}") + return True + + def selftest(): # Every shipped scheme must satisfy every role, or switching to it breaks # at install time. load() raises on any role the palette cannot supply. @@ -449,7 +487,9 @@ def selftest(): assert res["bg"] != res["fg"], f"{scheme}: bg and fg are the same colour" assert len(snap) >= 5, f"{scheme}: only {len(snap)} snap candidates" seen[scheme] = set(res) - print(f" {scheme}: {len(res)} roles, {len(snap)} accents") + parsed = check_rofi_parses(scheme) + note = "" if parsed else " (rofi not installed, parse unchecked)" + print(f" {scheme}: {len(res)} roles, {len(snap)} accents{note}") # Every scheme must define the SAME roles: a generator asks for a role by # name, so one scheme missing it would fail only once that scheme was diff --git a/palette/frappe.conf b/palette/frappe.conf new file mode 100644 index 0000000..d9bb86b --- /dev/null +++ b/palette/frappe.conf @@ -0,0 +1,39 @@ +# Catppuccin Frappe. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Source: https://github.com/catppuccin/palette +# +# The warmest of the three dark Catppuccin flavours, and the lightest: its base +# sits a shade above Macchiato's. + +rosewater = #f2d5cf +flamingo = #eebebe +pink = #f4b8e4 +mauve = #ca9ee6 +red = #e78284 +maroon = #ea999c +peach = #ef9f76 +yellow = #e5c890 +green = #a6d189 +teal = #81c8be +sky = #99d1db +sapphire = #85c1dc +blue = #8caaee +lavender = #babbf1 + +text = #c6d0f5 +subtext1 = #b5bfe2 +subtext0 = #a5adce + +overlay2 = #949cbb +overlay1 = #838ba7 +overlay0 = #737994 + +surface2 = #626880 +surface1 = #51576d +surface0 = #414559 + +base = #303446 +mantle = #292c3c +crust = #232634 diff --git a/palette/material-darker.conf b/palette/material-darker.conf new file mode 100644 index 0000000..66e3720 --- /dev/null +++ b/palette/material-darker.conf @@ -0,0 +1,30 @@ +# Material Darker. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Source: https://github.com/material-theme/vsc-material-theme +# +# The neutral-grey Material variant, with no blue or violet cast to the +# background. The darkest of the three shipped here. + +background = #212121 +surface = #2f2f2f +selection = #404040 +foreground = #eeffff +comment = #616161 + +red = #ff5370 +orange = #f78c6c +yellow = #ffcb6b +green = #c3e88d +cyan = #89ddff +blue = #82aaff +purple = #c792ea +violet = #bb80b3 +brown = #ab7967 + +# Interpolated, not upstream. See the note in material-ocean.conf. +deep = #171717 +mid = #262626 +mid_high = #4a4a4a +light = #8a8a8a diff --git a/palette/material-ocean.conf b/palette/material-ocean.conf new file mode 100644 index 0000000..da196f7 --- /dev/null +++ b/palette/material-ocean.conf @@ -0,0 +1,32 @@ +# Material Ocean. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Source: https://github.com/material-theme/vsc-material-theme +# +# The deepest blue of the Material family. Material ships a small accent set +# and three or four greys, so the surface names below are upstream's own +# (background, surface, selection) plus two interpolated depths, marked. + +background = #0f111a +surface = #1f2233 +selection = #1f2233 +foreground = #a6accd +comment = #4b526d + +red = #ff5370 +orange = #f78c6c +yellow = #ffcb6b +green = #c3e88d +cyan = #89ddff +blue = #82aaff +purple = #c792ea +violet = #bb80b3 +brown = #ab7967 + +# Interpolated, not upstream: Material gives three greys where the roles want +# five depths, so these fill the gaps between background and comment. +deep = #090b10 +mid = #171925 +mid_high = #2e3446 +light = #717cb4 diff --git a/palette/material-palenight.conf b/palette/material-palenight.conf new file mode 100644 index 0000000..dd95cf3 --- /dev/null +++ b/palette/material-palenight.conf @@ -0,0 +1,30 @@ +# Material Palenight. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Source: https://github.com/material-theme/vsc-material-theme +# +# The violet-leaning Material variant. Same accent set as Ocean on a warmer, +# lighter ground. + +background = #292d3e +surface = #34324a +selection = #444267 +foreground = #a6accd +comment = #676e95 + +red = #ff5370 +orange = #f78c6c +yellow = #ffcb6b +green = #c3e88d +cyan = #89ddff +blue = #82aaff +purple = #c792ea +violet = #bb80b3 +brown = #ab7967 + +# Interpolated, not upstream. See the note in material-ocean.conf. +deep = #202331 +mid = #2f3347 +mid_high = #3e4361 +light = #8f96b3 diff --git a/palette/mocha.conf b/palette/mocha.conf new file mode 100644 index 0000000..07a7ad5 --- /dev/null +++ b/palette/mocha.conf @@ -0,0 +1,39 @@ +# Catppuccin Mocha. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Source: https://github.com/catppuccin/palette +# +# The darkest Catppuccin flavour, and the one the waybar config used to carry +# in an unimported file before the palette was unified. + +rosewater = #f5e0dc +flamingo = #f2cdcd +pink = #f5c2e7 +mauve = #cba6f7 +red = #f38ba8 +maroon = #eba0ac +peach = #fab387 +yellow = #f9e2af +green = #a6e3a1 +teal = #94e2d5 +sky = #89dceb +sapphire = #74c7ec +blue = #89b4fa +lavender = #b4befe + +text = #cdd6f4 +subtext1 = #bac2de +subtext0 = #a6adc8 + +overlay2 = #9399b2 +overlay1 = #7f849c +overlay0 = #6c7086 + +surface2 = #585b70 +surface1 = #45475a +surface0 = #313244 + +base = #1e1e2e +mantle = #181825 +crust = #11111b diff --git a/palette/roles-frappe.conf b/palette/roles-frappe.conf new file mode 100644 index 0000000..4ae5ea4 --- /dev/null +++ b/palette/roles-frappe.conf @@ -0,0 +1,122 @@ +# Role assignments for Catppuccin Frappe. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Every role in here names a colour from palette/frappe.conf. See +# palette/roles.conf for what the roles mean and how to select a scheme. + +[ui] +# Surfaces, darkest to lightest. Most consumers only need the first three. +bg = base +bg_alt = mantle +bg_deep = crust +surface = surface0 +surface_alt = surface1 +border = surface1 + +# Text, brightest to dimmest. +fg = text +fg_dim = subtext0 +fg_faint = overlay0 + +# The one colour that tracks the wallpaper. udt-accent overrides this per +# wallpaper for rofi, dunst, Hyprland and Firefox; the value here is the +# fallback, and what the consumers that do not track it sit on permanently. +accent = lavender + +[state] +# Notification urgency, waybar module states, conky warnings. +warning = yellow +critical = red +success = green +info = teal + +[waybar] +# Bar chrome. These were already role names in ~/.config/waybar/theme.css. +main_br = subtext0 +main_bg = crust +main_fg = text +hover_bg = base +hover_fg = text/75 +outline = crust*50 + +# Per-module backgrounds. Alternating depths, not semantic: the bar reads as +# stripes, so neighbouring modules differ. +workspaces = mantle +temperature = mantle +memory = base +cpu = surface0 +time = surface0 +date = base +tray = mantle +volume = mantle +backlight = base +battery = surface0 +charging = green + +[conky] +# conky indexes colours by number. The names say what each number draws. +heading = lavender +label = subtext0 +rule = surface1 +value = teal +highlight = mauve +ok = green +body = text +body_outline = surface1 +body_shade = mantle + +[terminal] +# The 16 ANSI slots, plus kitty's own chrome. normal and bright are separate +# because a scheme may offer distinct pairs; Catppuccin and Dracula do not, so +# these name the same colours twice. +cursor = rosewater +selection_bg = rosewater +selection_fg = base +url = rosewater +tab_active_bg = mauve +tab_active_fg = crust +tab_inactive_bg = mantle +tab_inactive_fg = text +border_active = lavender +border_inactive = overlay0 + +black = surface1 +red = red +green = green +yellow = yellow +blue = blue +magenta = pink +cyan = teal +white = subtext1 + +bright_black = surface2 +bright_red = red +bright_green = green +bright_yellow = yellow +bright_blue = blue +bright_magenta = pink +bright_cyan = teal +bright_white = subtext0 + +# Intermediate greys, for consumers that want a full ramp rather than +# three depths. homepage's --color-50..900 is the only one so far. +fg_bright = subtext1 +mid_high = overlay2 +mid_low = overlay1 +surface_high = surface2 + +# kitty extras: marks, scrollbar, bell, tab bar ground. +mark1 = lavender +mark2 = mauve +mark3 = sapphire +scrollbar_handle = overlay2 +scrollbar_track = surface1 +bell_border = yellow +tab_bar_bg = crust + +[accents] +# The hues udt-accent snaps a wallpaper to. Near-neutral tints (rosewater, +# flamingo) and near-duplicate hues (maroon, sapphire) are left out so the +# snapping has one candidate per region of the wheel. +snap = pink mauve lavender red peach yellow green teal sky blue diff --git a/palette/roles-material-darker.conf b/palette/roles-material-darker.conf new file mode 100644 index 0000000..0db4a58 --- /dev/null +++ b/palette/roles-material-darker.conf @@ -0,0 +1,108 @@ +# Role assignments for Material Darker. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Material has one accent per hue and no bright variants, so the bright_* slots +# name the same colours as the normal ones. Its palette carries no pink, so +# purple fills the magenta slot. + +[ui] +bg = background +bg_alt = mid +bg_deep = deep +surface = surface +surface_alt = selection +border = mid_high + +fg = foreground +fg_dim = light +fg_faint = comment + +accent = cyan + +[state] +warning = yellow +critical = red +success = green +info = cyan + +[waybar] +main_br = light +main_bg = deep +main_fg = foreground +hover_bg = background +hover_fg = foreground/75 +outline = deep*50 + +workspaces = mid +temperature = mid +memory = background +cpu = surface +time = surface +date = background +tray = mid +volume = mid +backlight = background +battery = surface +charging = green + +[conky] +heading = cyan +label = light +rule = mid_high +value = blue +highlight = purple +ok = green +body = foreground +body_outline = mid_high +body_shade = deep + +[terminal] +cursor = orange +selection_bg = selection +selection_fg = foreground +url = cyan +tab_active_bg = purple +tab_active_fg = background +tab_inactive_bg = mid +tab_inactive_fg = foreground +border_active = cyan +border_inactive = comment + +black = selection +red = red +green = green +yellow = yellow +blue = blue +magenta = purple +cyan = cyan +white = foreground + +bright_black = comment +bright_red = red +bright_green = green +bright_yellow = orange +bright_blue = blue +bright_magenta = violet +bright_cyan = cyan +bright_white = foreground + +# Intermediate greys, for consumers that want a full ramp rather than +# three depths. homepage's --color-50..900 is the only one so far. +fg_bright = foreground +mid_high = light +mid_low = comment +surface_high = mid_high + +# kitty extras: marks, scrollbar, bell, tab bar ground. +mark1 = cyan +mark2 = purple +mark3 = blue +scrollbar_handle = comment +scrollbar_track = surface +bell_border = yellow +tab_bar_bg = deep + +[accents] +# Material ships one accent per hue, seven usable. +snap = purple violet blue cyan green yellow orange red diff --git a/palette/roles-material-ocean.conf b/palette/roles-material-ocean.conf new file mode 100644 index 0000000..6291123 --- /dev/null +++ b/palette/roles-material-ocean.conf @@ -0,0 +1,108 @@ +# Role assignments for Material Ocean. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Material has one accent per hue and no bright variants, so the bright_* slots +# name the same colours as the normal ones. Its palette carries no pink, so +# purple fills the magenta slot. + +[ui] +bg = background +bg_alt = mid +bg_deep = deep +surface = surface +surface_alt = selection +border = mid_high + +fg = foreground +fg_dim = light +fg_faint = comment + +accent = cyan + +[state] +warning = yellow +critical = red +success = green +info = cyan + +[waybar] +main_br = light +main_bg = deep +main_fg = foreground +hover_bg = background +hover_fg = foreground/75 +outline = deep*50 + +workspaces = mid +temperature = mid +memory = background +cpu = surface +time = surface +date = background +tray = mid +volume = mid +backlight = background +battery = surface +charging = green + +[conky] +heading = cyan +label = light +rule = mid_high +value = blue +highlight = purple +ok = green +body = foreground +body_outline = mid_high +body_shade = deep + +[terminal] +cursor = orange +selection_bg = selection +selection_fg = foreground +url = cyan +tab_active_bg = purple +tab_active_fg = background +tab_inactive_bg = mid +tab_inactive_fg = foreground +border_active = cyan +border_inactive = comment + +black = selection +red = red +green = green +yellow = yellow +blue = blue +magenta = purple +cyan = cyan +white = foreground + +bright_black = comment +bright_red = red +bright_green = green +bright_yellow = orange +bright_blue = blue +bright_magenta = violet +bright_cyan = cyan +bright_white = foreground + +# Intermediate greys, for consumers that want a full ramp rather than +# three depths. homepage's --color-50..900 is the only one so far. +fg_bright = foreground +mid_high = light +mid_low = comment +surface_high = mid_high + +# kitty extras: marks, scrollbar, bell, tab bar ground. +mark1 = cyan +mark2 = purple +mark3 = blue +scrollbar_handle = comment +scrollbar_track = surface +bell_border = yellow +tab_bar_bg = deep + +[accents] +# Material ships one accent per hue, seven usable. +snap = purple violet blue cyan green yellow orange red diff --git a/palette/roles-material-palenight.conf b/palette/roles-material-palenight.conf new file mode 100644 index 0000000..e09d54b --- /dev/null +++ b/palette/roles-material-palenight.conf @@ -0,0 +1,108 @@ +# Role assignments for Material Palenight. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Material has one accent per hue and no bright variants, so the bright_* slots +# name the same colours as the normal ones. Its palette carries no pink, so +# purple fills the magenta slot. + +[ui] +bg = background +bg_alt = mid +bg_deep = deep +surface = surface +surface_alt = selection +border = mid_high + +fg = foreground +fg_dim = light +fg_faint = comment + +accent = cyan + +[state] +warning = yellow +critical = red +success = green +info = cyan + +[waybar] +main_br = light +main_bg = deep +main_fg = foreground +hover_bg = background +hover_fg = foreground/75 +outline = deep*50 + +workspaces = mid +temperature = mid +memory = background +cpu = surface +time = surface +date = background +tray = mid +volume = mid +backlight = background +battery = surface +charging = green + +[conky] +heading = cyan +label = light +rule = mid_high +value = blue +highlight = purple +ok = green +body = foreground +body_outline = mid_high +body_shade = deep + +[terminal] +cursor = orange +selection_bg = selection +selection_fg = foreground +url = cyan +tab_active_bg = purple +tab_active_fg = background +tab_inactive_bg = mid +tab_inactive_fg = foreground +border_active = cyan +border_inactive = comment + +black = selection +red = red +green = green +yellow = yellow +blue = blue +magenta = purple +cyan = cyan +white = foreground + +bright_black = comment +bright_red = red +bright_green = green +bright_yellow = orange +bright_blue = blue +bright_magenta = violet +bright_cyan = cyan +bright_white = foreground + +# Intermediate greys, for consumers that want a full ramp rather than +# three depths. homepage's --color-50..900 is the only one so far. +fg_bright = foreground +mid_high = light +mid_low = comment +surface_high = mid_high + +# kitty extras: marks, scrollbar, bell, tab bar ground. +mark1 = cyan +mark2 = purple +mark3 = blue +scrollbar_handle = comment +scrollbar_track = surface +bell_border = yellow +tab_bar_bg = deep + +[accents] +# Material ships one accent per hue, seven usable. +snap = purple violet blue cyan green yellow orange red diff --git a/palette/roles-mocha.conf b/palette/roles-mocha.conf new file mode 100644 index 0000000..8d5c509 --- /dev/null +++ b/palette/roles-mocha.conf @@ -0,0 +1,122 @@ +# Role assignments for Catppuccin Mocha. +# Copyright (C) 2026 Danilo M. <danix@danix.xyz> +# Licensed under the GNU General Public License v2 only. +# +# Every role in here names a colour from palette/mocha.conf. See +# palette/roles.conf for what the roles mean and how to select a scheme. + +[ui] +# Surfaces, darkest to lightest. Most consumers only need the first three. +bg = base +bg_alt = mantle +bg_deep = crust +surface = surface0 +surface_alt = surface1 +border = surface1 + +# Text, brightest to dimmest. +fg = text +fg_dim = subtext0 +fg_faint = overlay0 + +# The one colour that tracks the wallpaper. udt-accent overrides this per +# wallpaper for rofi, dunst, Hyprland and Firefox; the value here is the +# fallback, and what the consumers that do not track it sit on permanently. +accent = lavender + +[state] +# Notification urgency, waybar module states, conky warnings. +warning = yellow +critical = red +success = green +info = teal + +[waybar] +# Bar chrome. These were already role names in ~/.config/waybar/theme.css. +main_br = subtext0 +main_bg = crust +main_fg = text +hover_bg = base +hover_fg = text/75 +outline = crust*50 + +# Per-module backgrounds. Alternating depths, not semantic: the bar reads as +# stripes, so neighbouring modules differ. +workspaces = mantle +temperature = mantle +memory = base +cpu = surface0 +time = surface0 +date = base +tray = mantle +volume = mantle +backlight = base +battery = surface0 +charging = green + +[conky] +# conky indexes colours by number. The names say what each number draws. +heading = lavender +label = subtext0 +rule = surface1 +value = teal +highlight = mauve +ok = green +body = text +body_outline = surface1 +body_shade = mantle + +[terminal] +# The 16 ANSI slots, plus kitty's own chrome. normal and bright are separate +# because a scheme may offer distinct pairs; Catppuccin and Dracula do not, so +# these name the same colours twice. +cursor = rosewater +selection_bg = rosewater +selection_fg = base +url = rosewater +tab_active_bg = mauve +tab_active_fg = crust +tab_inactive_bg = mantle +tab_inactive_fg = text +border_active = lavender +border_inactive = overlay0 + +black = surface1 +red = red +green = green +yellow = yellow +blue = blue +magenta = pink +cyan = teal +white = subtext1 + +bright_black = surface2 +bright_red = red +bright_green = green +bright_yellow = yellow +bright_blue = blue +bright_magenta = pink +bright_cyan = teal +bright_white = subtext0 + +# Intermediate greys, for consumers that want a full ramp rather than +# three depths. homepage's --color-50..900 is the only one so far. +fg_bright = subtext1 +mid_high = overlay2 +mid_low = overlay1 +surface_high = surface2 + +# kitty extras: marks, scrollbar, bell, tab bar ground. +mark1 = lavender +mark2 = mauve +mark3 = sapphire +scrollbar_handle = overlay2 +scrollbar_track = surface1 +bell_border = yellow +tab_bar_bg = crust + +[accents] +# The hues udt-accent snaps a wallpaper to. Near-neutral tints (rosewater, +# flamingo) and near-duplicate hues (maroon, sapphire) are left out so the +# snapping has one candidate per region of the wheel. +snap = pink mauve lavender red peach yellow green teal sky blue diff --git a/templates/conky.conf b/templates/conky.conf index 739cc41..5711cf2 100644 --- a/templates/conky.conf +++ b/templates/conky.conf @@ -5,17 +5,17 @@ conky.config={ mpd_host = '172.16.34.5', mpd_port = 6600, background=true, - color1='#88c0d0', - color2='#d8dee9', - color3='#4c566a', - color4='#8fbcbb', - color5='#b48ead', - color6='#a3be8c', + color1='#89ddff', + color2='#717cb4', + color3='#2e3446', + color4='#82aaff', + color5='#c792ea', + color6='#c3e88d', pad_percents=0, cpu_avg_samples=4, - default_color='#eceff4', - default_outline_color='#4c566a', - default_shade_color='#3b4252', + default_color='#a6accd', + default_outline_color='#2e3446', + default_shade_color='#090b10', default_bar_height=10, default_bar_width=500, double_buffer=true, diff --git a/templates/dunstrc b/templates/dunstrc index de34cb1..fc4a988 100644 --- a/templates/dunstrc +++ b/templates/dunstrc @@ -59,17 +59,17 @@ [experimental] per_monitor_dpi = false [urgency_low] - background = "#3b4252" - foreground = "#d8dee9" - frame_color = "#4c566a" + background = "#171925" + foreground = "#717cb4" + frame_color = "#2e3446" timeout = 10 [urgency_normal] - background = "#2e3440" - foreground = "#d8dee9" + background = "#0f111a" + foreground = "#a6accd" frame_color = "@ACCENT@" timeout = 10 [urgency_critical] - background = "#2e3440" - foreground = "#d8dee9" - frame_color = "#bf616a" + background = "#0f111a" + foreground = "#a6accd" + frame_color = "#ff5370" timeout = 0 diff --git a/templates/homepage/custom.css b/templates/homepage/custom.css index e2b7027..5453292 100644 --- a/templates/homepage/custom.css +++ b/templates/homepage/custom.css @@ -1,42 +1,42 @@ -/* Generated by udt-palette from palette/nord.conf. Do not edit. +/* Generated by udt-palette from palette/material-ocean.conf. Do not edit. * - * Catppuccin-independent: every colour here comes from palette/roles-nord + * Catppuccin-independent: every colour here comes from palette/roles-material-ocean * .conf, so this file follows the desktop rather than restating a palette. */ .theme-gray { - --color-50: 216 222 233; - --color-100: 229 233 240; - --color-200: 216 222 233; - --color-300: 216 222 233; - --color-400: 76 86 106; - --color-500: 76 86 106; - --color-600: 67 76 94; - --color-700: 67 76 94; - --color-800: 59 66 82; - --color-900: 46 52 64; + --color-50: 166 172 205; + --color-100: 166 172 205; + --color-200: 113 124 180; + --color-300: 113 124 180; + --color-400: 75 82 109; + --color-500: 75 82 109; + --color-600: 46 52 70; + --color-700: 31 34 51; + --color-800: 31 34 51; + --color-900: 15 17 26; - --color-logo-start: 136 192 208; - --color-logo-stop: 143 188 187; + --color-logo-start: 137 221 255; + --color-logo-stop: 137 221 255; } /* Card backgrounds, which the ramp does not reach. See the note above. */ .theme-gray .bg-theme-100\/20:not([class^="backdrop-blur"]), .theme-gray .dark\:bg-white\/5:not([class^="backdrop-blur"]) { - background-color: rgb(59 66 82 / 55%); + background-color: rgb(31 34 51 / 55%); } .theme-gray .bg-theme-100\/20:hover:not([class^="backdrop-blur"]), .theme-gray .dark\:bg-white\/5:hover:not([class^="backdrop-blur"]) { - background-color: rgb(67 76 94 / 70%); + background-color: rgb(31 34 51 / 70%); } .theme-gray .bg-theme-900\/50:not([class^="backdrop-blur"]) { - background-color: rgb(46 52 64 / 50%); + background-color: rgb(15 17 26 / 50%); } /* Accent on secondary labels. Fixed, not wallpaper-tracking: this runs on a * server with no wallpaper to read. */ .theme-gray .text-theme-500 { - color: #88c0d0; + color: #89ddff; } |
