feat: dank themes module

This commit is contained in:
Nick 2025-01-16 21:44:11 -06:00
parent b07db5670d
commit b0fdd1d958
32 changed files with 1377 additions and 1345 deletions

View file

@ -1,5 +1,5 @@
let
currentTheme = catppuccin-macchiato;
currentTheme = gruvbox-dark;
# Ayu
ayu-dark = "ayu-dark";
ayu-light = "ayu-light";
@ -71,12 +71,14 @@ let
errorMessage = "Unknown theme: ${currentTheme}";
mkThemeMap = themes: themeColours:
if currentTheme == builtins.head themes
then builtins.head themeColours
else if themes == []
then throw errorMessage
else mkThemeMap (builtins.tail themes) (builtins.tail themeColours);
mkThemeMap =
themes: themeColours:
if currentTheme == builtins.head themes then
builtins.head themeColours
else if themes == [ ] then
throw errorMessage
else
mkThemeMap (builtins.tail themes) (builtins.tail themeColours);
mapColour =
# Ayu
@ -123,7 +125,7 @@ let
vesperColour:
# Wasp
wasp-darkColour: wasp-lightColour:
mkThemeMap
mkThemeMap
[
# Ayu
ayu-dark
@ -264,69 +266,72 @@ let
wasp-darkColour
wasp-lightColour
];
in {
in
{
themes = {
currentTheme = currentTheme;
font = "MonaspiceRn Nerd Font";
schemes = let
schemePath = ./schemes;
ayuPath = /ayu;
catppuccinPath = /catppuccin;
gruvboxPath = /gruvbox;
kanagawaPath = /kanagawa;
materialPath = /material;
poimandresPath = /poimandres;
rosepinePath = /rosepine;
toyko-nightPath = /tokyo-night;
solarizedPath = /solarized;
waspPath = /wasp;
in {
${ayu-dark} = import (schemePath + ayuPath + /dark);
${ayu-light} = import (schemePath + ayuPath + /light);
${ayu-mirage} = import (schemePath + ayuPath + /mirage);
${catppuccin-frappe} = import (schemePath + catppuccinPath + /frappe);
${catppuccin-latte} = import (schemePath + catppuccinPath + /latte);
${catppuccin-macchiato} = import (schemePath + catppuccinPath + /macchiato);
${catppuccin-mocha} = import (schemePath + catppuccinPath + /mocha);
${dracula} = import (schemePath + /dracula);
${gruvbox-dark} = import (schemePath + gruvboxPath + /dark);
${gruvbox-light} = import (schemePath + gruvboxPath + /light);
${houston} = import (schemePath + /houston);
${kanagawa-dragon} = import (schemePath + kanagawaPath + /dragon);
${kanagawa-lotus} = import (schemePath + kanagawaPath + /lotus);
${kanagawa-wave} = import (schemePath + kanagawaPath + /wave);
${laserwave} = import (schemePath + /laserwave);
${lunar} = import (schemePath + /lunar);
${material-darker} = import (schemePath + materialPath + /darker);
${material-lighter} = import (schemePath + materialPath + /lighter);
${material-oceanic} = import (schemePath + materialPath + /oceanic);
${material-palenight} = import (schemePath + materialPath + /palenight);
${material-deep-ocean} = import (schemePath + materialPath + /deep-ocean);
${material-forest} = import (schemePath + materialPath + /forest);
${material-sky-blue} = import (schemePath + materialPath + /sky-blue);
${material-sandy-beach} = import (schemePath + materialPath + /sandy-beach);
${material-volcano} = import (schemePath + materialPath + /volcano);
${material-space} = import (schemePath + materialPath + /space);
${monokai} = import (schemePath + /monokai);
${night-owl} = import (schemePath + /night-owl);
${nord} = import (schemePath + /nord);
${ocean-next} = import (schemePath + /ocean-next);
${one-dark} = import (schemePath + /one-dark);
${poimandres-base} = import (schemePath + poimandresPath + /base);
${poimandres-storm} = import (schemePath + poimandresPath + /storm);
${rosepine-base} = import (schemePath + rosepinePath + /base);
${rosepine-dawn} = import (schemePath + rosepinePath + /dawn);
${rosepine-moon} = import (schemePath + rosepinePath + /moon);
${tokyo-night-night} = import (schemePath + toyko-nightPath + /night);
${tokyo-night-storm} = import (schemePath + toyko-nightPath + /storm);
${tokyo-night-day} = import (schemePath + toyko-nightPath + /day);
${solorized-dark} = import (schemePath + solarizedPath + /dark);
${solorized-light} = import (schemePath + solarizedPath + /light);
${synthwave-84} = import (schemePath + /synthwave-84);
${vesper} = import (schemePath + /vesper);
${wasp-dark} = import (schemePath + waspPath + /dark);
${wasp-light} = import (schemePath + waspPath + /light);
};
elements = import ./elements {inherit mapColour;};
schemes =
let
schemePath = ./schemes;
ayuPath = /ayu;
catppuccinPath = /catppuccin;
gruvboxPath = /gruvbox;
kanagawaPath = /kanagawa;
materialPath = /material;
poimandresPath = /poimandres;
rosepinePath = /rosepine;
toyko-nightPath = /tokyo-night;
solarizedPath = /solarized;
waspPath = /wasp;
in
{
${ayu-dark} = import (schemePath + ayuPath + /dark);
${ayu-light} = import (schemePath + ayuPath + /light);
${ayu-mirage} = import (schemePath + ayuPath + /mirage);
${catppuccin-frappe} = import (schemePath + catppuccinPath + /frappe);
${catppuccin-latte} = import (schemePath + catppuccinPath + /latte);
${catppuccin-macchiato} = import (schemePath + catppuccinPath + /macchiato);
${catppuccin-mocha} = import (schemePath + catppuccinPath + /mocha);
${dracula} = import (schemePath + /dracula);
${gruvbox-dark} = import (schemePath + gruvboxPath + /dark);
${gruvbox-light} = import (schemePath + gruvboxPath + /light);
${houston} = import (schemePath + /houston);
${kanagawa-dragon} = import (schemePath + kanagawaPath + /dragon);
${kanagawa-lotus} = import (schemePath + kanagawaPath + /lotus);
${kanagawa-wave} = import (schemePath + kanagawaPath + /wave);
${laserwave} = import (schemePath + /laserwave);
${lunar} = import (schemePath + /lunar);
${material-darker} = import (schemePath + materialPath + /darker);
${material-lighter} = import (schemePath + materialPath + /lighter);
${material-oceanic} = import (schemePath + materialPath + /oceanic);
${material-palenight} = import (schemePath + materialPath + /palenight);
${material-deep-ocean} = import (schemePath + materialPath + /deep-ocean);
${material-forest} = import (schemePath + materialPath + /forest);
${material-sky-blue} = import (schemePath + materialPath + /sky-blue);
${material-sandy-beach} = import (schemePath + materialPath + /sandy-beach);
${material-volcano} = import (schemePath + materialPath + /volcano);
${material-space} = import (schemePath + materialPath + /space);
${monokai} = import (schemePath + /monokai);
${night-owl} = import (schemePath + /night-owl);
${nord} = import (schemePath + /nord);
${ocean-next} = import (schemePath + /ocean-next);
${one-dark} = import (schemePath + /one-dark);
${poimandres-base} = import (schemePath + poimandresPath + /base);
${poimandres-storm} = import (schemePath + poimandresPath + /storm);
${rosepine-base} = import (schemePath + rosepinePath + /base);
${rosepine-dawn} = import (schemePath + rosepinePath + /dawn);
${rosepine-moon} = import (schemePath + rosepinePath + /moon);
${tokyo-night-night} = import (schemePath + toyko-nightPath + /night);
${tokyo-night-storm} = import (schemePath + toyko-nightPath + /storm);
${tokyo-night-day} = import (schemePath + toyko-nightPath + /day);
${solorized-dark} = import (schemePath + solarizedPath + /dark);
${solorized-light} = import (schemePath + solarizedPath + /light);
${synthwave-84} = import (schemePath + /synthwave-84);
${vesper} = import (schemePath + /vesper);
${wasp-dark} = import (schemePath + waspPath + /dark);
${wasp-light} = import (schemePath + waspPath + /light);
};
elements = import ./elements { inherit mapColour; };
};
}