feat(oxiced): New stylix to oxiced adapter

This commit is contained in:
DashieTM 2025-06-20 23:59:16 +02:00
parent d3787c546e
commit faa8379e25
2 changed files with 59 additions and 6 deletions

View file

@ -8,9 +8,62 @@
# hence ensure it is by using base16 mkSchemeAttrs
base16 = pkgs.callPackage inputs.base16.lib {};
scheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
valueOrDefault = value: fallback:
if (scheme ? oxiced && scheme.oxiced ? ${value})
then scheme.oxiced.value
else fallback;
in {
xdg.configFile."oxiced/theme.toml" = {
source = (pkgs.formats.toml {}).generate "oxiced" {
base = valueOrDefault "base" scheme.base00;
mantle = valueOrDefault "mantle" scheme.base01;
primary_bg = valueOrDefault "primary_bg" scheme.base02;
secondary_bg = valueOrDefault "secondary_bg" scheme.base03;
tertiary_bg = valueOrDefault "tertiary_bg" scheme.base04;
text = valueOrDefault "text" scheme.base05;
primary = valueOrDefault "primary" scheme.base0D;
primary_contrast = valueOrDefault "primary_contrast" "FFFFFF";
secondary = valueOrDefault "primary" scheme.base07;
secondary_contrast = valueOrDefault "secondary_contrast" "FFFFFF";
good = valueOrDefault "good" scheme.base0B;
good_contrast = valueOrDefault "good_contrast" "000000";
bad = valueOrDefault "bad" scheme.base08;
bad_contrast = valueOrDefault "bad_contrast" "FFFFFF";
warning = valueOrDefault "warning" scheme.base0A;
warning_contrast = valueOrDefault "warning_contrast" "000000";
info = valueOrDefault "info" scheme.base0C;
info_contrast = valueOrDefault "info_contrast" "FFFFFF";
rose = valueOrDefault "rose" scheme.base06;
lavender = valueOrDefault "lavender" scheme.base07;
blue = valueOrDefault "blue" scheme.base0D;
mauve = valueOrDefault "mauve" scheme.base0E;
flamingo = valueOrDefault "flamingo" scheme.base0F;
border_color_weak = valueOrDefault "border_color_weak" scheme.base05;
border_color_strong = valueOrDefault "border_color_strong" scheme.base0D;
tint_amount = valueOrDefault "tint_amound" 0.10;
shade_amount = valueOrDefault "shade_amount" 0.05;
border_radius = valueOrDefault "border_radius" 10;
padding_xs = valueOrDefault "padding_xs" 4.0;
padding_sm = valueOrDefault "padding_sm" 8.0;
padding_md = valueOrDefault "padding_md" 12.0;
padding_lg = valueOrDefault "padding_lg" 16.0;
padding_xl = valueOrDefault "padding_xl" 24.0;
padding_xxl = valueOrDefault "padding_xxl" 32.0;
font_sm = valueOrDefault "font_sm" 10.0;
font_md = valueOrDefault "font_md" 14.0;
font_lg = valueOrDefault "font_lg" 18.0;
font_xl = valueOrDefault "font_xl" 24.0;
font_xxl = valueOrDefault "font_xxl" 32.0;
# legacy compatibility
name = scheme.scheme;
base00 = scheme.base00;
base01 = scheme.base01;