dotfiles/config/themes/default.nix

338 lines
10 KiB
Nix
Raw Normal View History

2024-12-19 19:56:45 -06:00
let
2025-01-16 21:44:11 -06:00
currentTheme = gruvbox-dark;
2025-01-14 19:40:12 -06:00
# Ayu
ayu-dark = "ayu-dark";
ayu-light = "ayu-light";
ayu-mirage = "ayu-mirage";
2025-01-14 16:17:42 -06:00
# Catppuccin
catppuccin-frappe = "catppuccin-frappe";
2025-01-16 15:17:25 -06:00
catppuccin-latte = "catppuccin-latte";
2025-01-14 16:17:42 -06:00
catppuccin-macchiato = "catppuccin-macchiato";
catppuccin-mocha = "catppuccin-mocha";
# Dracula
dracula = "dracula";
# Gruvbox
gruvbox-dark = "gruvbox-dark";
gruvbox-light = "gruvbox-light";
2025-01-14 19:40:12 -06:00
# Houston
houston = "houston";
# Kanagawa
kanagawa-dragon = "kanagawa-dragon";
kanagawa-lotus = "kanagawa-lotus";
kanagawa-wave = "kanagawa-wave";
# Laserwave
laserwave = "laserwave";
#Lunar
lunar = "lunar";
2025-01-14 16:17:42 -06:00
# Material
material-darker = "material-darker";
material-deep-ocean = "material-deep-ocean";
material-forest = "material-forest";
material-lighter = "material-lighter";
material-oceanic = "material-oceanic";
material-palenight = "material-palenight";
material-sandy-beach = "material-sandy-beach";
material-sky-blue = "material-sky-blue";
material-space = "material-space";
material-volcano = "material-volcano";
2025-01-14 19:40:12 -06:00
# Monokai
monokai = "monokai";
# Night Owl
night-owl = "night-owl";
2025-01-14 16:17:42 -06:00
# Nord
nord = "nord";
2025-01-14 19:40:12 -06:00
#Ocean Next
ocean-next = "ocean-next";
2025-01-14 16:17:42 -06:00
# One Dark
one-dark = "one-dark";
2025-01-14 19:40:12 -06:00
# Plastic
plastic = "plastic";
# Poimandres
poimandres-base = "poimandres-base";
poimandres-storm = "poimandres-storm";
2025-01-14 16:17:42 -06:00
# Rosepine
2025-01-16 15:17:25 -06:00
rosepine-base = "rosepine";
2025-01-14 16:17:42 -06:00
rosepine-moon = "rosepine-moon";
rosepine-dawn = "rosepine-dawn";
# Tokyo Night
tokyo-night-night = "tokyo-night-night";
tokyo-night-storm = "tokyo-night-storm";
tokyo-night-day = "tokyo-night-day";
# Solorized
solorized-dark = "solorized-dark";
solorized-light = "solorized-light";
2025-01-14 19:40:12 -06:00
# Synthwave 84
synthwave-84 = "synthwave-84";
# Vesper
vesper = "vesper";
# Wasp
2025-01-16 15:17:25 -06:00
wasp-dark = "wasp-dark";
wasp-light = "wasp-light";
2025-01-14 19:40:12 -06:00
2025-01-14 16:17:42 -06:00
errorMessage = "Unknown theme: ${currentTheme}";
2024-12-19 19:56:45 -06:00
2025-01-16 21:44:11 -06:00
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);
2025-01-14 20:28:48 -06:00
2025-01-14 16:17:42 -06:00
mapColour =
2025-01-14 19:40:12 -06:00
# Ayu
ayu-darkColour: ayu-lightColour: ayu-mirageColour:
2025-01-14 16:17:42 -06:00
# Catppuccin
2025-01-14 20:28:48 -06:00
catppuccin-frappeColour: catppuccin-latteColour: catppuccin-macchiatoColour: catppuccin-mochaColour:
2025-01-14 16:17:42 -06:00
# Dracula
draculaColour:
# Gruvbox
gruvbox-darkColour: gruvbox-lightColour:
2025-01-14 19:40:12 -06:00
# Houston
houstonColour:
# Kanagawa
kanagawa-dragonColour: kanagawa-lotusColour: kanagawa-waveColour:
# Laserwave
laserwaveColour:
# Lunar
lunarColour:
2025-01-14 16:17:42 -06:00
# Material
material-darkerColour: material-deep-oceanColour: material-forestColour: material-lighterColour: material-oceanicColour: material-palenightColour: material-sandy-beachColour: material-sky-blueColour: material-spaceColour: material-volcanoColour:
2025-01-14 19:40:12 -06:00
# Monokai
monokaiColour:
# Night Owl
night-owlColour:
2025-01-14 16:17:42 -06:00
# Nord
nordColour:
2025-01-14 19:40:12 -06:00
# Ocean Next
ocean-nextColour:
2025-01-14 16:17:42 -06:00
# One Dark
one-darkColour:
2025-01-14 19:40:12 -06:00
# Plastic
plasticColour:
# Poimandres
poimandres-baseColour: poimandres-stormColour:
2025-01-14 16:17:42 -06:00
# Rosepine
2025-01-16 15:17:25 -06:00
rosepine-baseColour: rosepine-dawnColour: rosepine-moonColour:
2025-01-14 16:17:42 -06:00
# Solorized
solorized-darkColour: solorized-lightColour:
2025-01-14 19:40:12 -06:00
# Synthwave 84
synthwave-84Colour:
2025-01-16 15:17:25 -06:00
# Tokyo Night
tokyo-night-dayColour: tokyo-night-nightColour: tokyo-night-stormColour:
2025-01-14 19:40:12 -06:00
# Vesper
vesperColour:
# Wasp
2025-01-16 15:17:25 -06:00
wasp-darkColour: wasp-lightColour:
2025-01-16 21:44:11 -06:00
mkThemeMap
2025-01-16 15:17:25 -06:00
[
2025-01-14 20:28:48 -06:00
# Ayu
ayu-dark
ayu-light
ayu-mirage
# Catppuccin
catppuccin-frappe
catppuccin-latte
catppuccin-macchiato
catppuccin-mocha
# Dracula
dracula
# Gruvbox
gruvbox-dark
gruvbox-light
# Houston
houston
# Kanagawa
kanagawa-dragon
kanagawa-lotus
kanagawa-wave
# Laserwave
laserwave
# Lunar
lunar
# Material
material-darker
material-deep-ocean
material-forest
material-lighter
material-oceanic
material-palenight
material-sandy-beach
material-sky-blue
material-space
material-volcano
# Monokai
monokai
# Night Owl
night-owl
# Nord
nord
# Ocean Next
ocean-next
# One Dark
one-dark
# Plastic
plastic
# Poimandres
poimandres-base
poimandres-storm
# Rosepine
2025-01-16 15:17:25 -06:00
rosepine-base
2025-01-14 20:28:48 -06:00
rosepine-dawn
2025-01-16 15:17:25 -06:00
rosepine-moon
2025-01-14 20:28:48 -06:00
# Solorized
solorized-dark
solorized-light
# Synthwave 84
synthwave-84
2025-01-16 15:17:25 -06:00
# Tokyo Night
tokyo-night-day
tokyo-night-night
tokyo-night-storm
2025-01-14 20:28:48 -06:00
# Vesper
vesper
# Wasp
2025-01-16 15:17:25 -06:00
wasp-dark
wasp-light
]
[
2025-01-14 20:28:48 -06:00
# Ayu
ayu-darkColour
ayu-lightColour
ayu-mirageColour
# Catppuccin
catppuccin-frappeColour
catppuccin-latteColour
catppuccin-macchiatoColour
catppuccin-mochaColour
# Dracula
draculaColour
# Gruvbox
gruvbox-darkColour
gruvbox-lightColour
# Houston
houstonColour
# Kanagawa
kanagawa-dragonColour
kanagawa-lotusColour
kanagawa-waveColour
# Laserwave
laserwaveColour
# Lunar
lunarColour
# Material
material-darkerColour
material-deep-oceanColour
material-forestColour
material-lighterColour
material-oceanicColour
material-palenightColour
material-sandy-beachColour
material-sky-blueColour
material-spaceColour
material-volcanoColour
# Monokai
monokaiColour
# Night Owl
night-owlColour
# Nord
nordColour
# Ocean Next
ocean-nextColour
# One Dark
one-darkColour
# Plastic
plasticColour
# Poimandres
poimandres-baseColour
poimandres-stormColour
# Rosepine
2025-01-16 15:17:25 -06:00
rosepine-baseColour
2025-01-14 20:28:48 -06:00
rosepine-dawnColour
2025-01-16 15:17:25 -06:00
rosepine-moonColour
2025-01-14 20:28:48 -06:00
# Solorized
solorized-darkColour
solorized-lightColour
# Synthwave 84
synthwave-84Colour
2025-01-16 15:17:25 -06:00
# Tokyo Night
tokyo-night-dayColour
tokyo-night-nightColour
tokyo-night-stormColour
2025-01-14 20:28:48 -06:00
# Vesper
vesperColour
# Wasp
2025-01-16 15:17:25 -06:00
wasp-darkColour
wasp-lightColour
2025-01-14 20:28:48 -06:00
];
2025-01-16 21:44:11 -06:00
in
{
2025-01-14 16:17:42 -06:00
themes = {
currentTheme = currentTheme;
font = "MonaspiceRn Nerd Font";
2025-01-16 21:44:11 -06:00
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; };
2025-01-14 16:17:42 -06:00
};
2024-12-19 19:56:45 -06:00
}