Merge pull request '95: Fix light/dark mode mismatch causes preset to not load' (#124) from 95-fix-light-mode-scheme-mismatch into main

Reviewed-on: #124
This commit was merged in pull request #124.
This commit is contained in:
2026-06-14 21:27:27 +02:00
+23 -1
View File
@@ -590,14 +590,36 @@ def generate(
raise typer.BadParameter(
f"Accent '{accent}' not available for '{p_scheme}:{p_variant}'. Available accents: {available}"
)
requested_mode = mode or config_mode
resolved_mode = requested_mode
if p_scheme in schemes:
meta = schemes[p_scheme]
variant = next(
(vari for vari in meta.variants if vari.id == p_variant), None
)
if variant and requested_mode not in variant.modes and variant.modes:
resolved_mode = sorted(variant.modes)[0]
palette_obj = get_palette(
p_scheme, p_variant, mode or config_mode, accent=accent
p_scheme, p_variant, resolved_mode, accent=accent
)
colors = palette_obj.colors
effective_mode = palette_obj.mode
name = palette_obj.scheme
flavor = palette_obj.variant
display_name = schemes[p_scheme].name
config["colors"]["presets"] = {
"name": display_name,
"variant": p_variant,
"accent": accent or "",
}
tmp = CONFIG.with_suffix(".json.tmp")
with tmp.open("w") as f:
json.dump(config, f, indent=4)
os.replace(tmp, CONFIG)
seed = hex_to_hct(colors.get("primary", "#000000").lstrip("#"))
else:
image_path = image_path or Path(WALL_PATH)