dotfiles/config/themes/default.nix

453 lines
13 KiB
Nix
Raw Normal View History

2024-12-19 19:56:45 -06:00
let
2025-01-14 16:17:42 -06:00
currentTheme = catppuccin-macchiato;
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-latte = "catppuccin-latte";
catppuccin-frappe = "catppuccin-frappe";
catppuccin-macchiato = "catppuccin-macchiato";
catppuccin-mocha = "catppuccin-mocha";
2025-01-14 19:40:12 -06:00
# Cobalt
cobalt2 = "cobalt2";
2025-01-14 16:17:42 -06:00
# 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
rosepine = "rosepine";
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
wasp = "wasp";
2025-01-14 16:17:42 -06:00
errorMessage = "Unknown theme: ${currentTheme}";
2024-12-19 19:56:45 -06:00
2025-01-14 16:17:42 -06:00
schemePath = ./schemes;
2024-12-19 19:56:45 -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
catppuccin-latteColour: catppuccin-frappeColour: catppuccin-macchiatoColour: catppuccin-mochaColour:
2025-01-14 19:40:12 -06:00
# Cobalt2
cobalt2Colour:
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
rosepineColour: rosepine-moonColour: rosepine-dawnColour:
# Tokyo Night
tokyo-night-nightColor: tokyo-night-stormColor: tokyo-night-dayColor:
# Solorized
solorized-darkColour: solorized-lightColour:
2025-01-14 19:40:12 -06:00
# Synthwave 84
synthwave-84Colour:
# Vesper
vesperColour:
# Wasp
waspColour:
# Ayu
if currentTheme == ayu-dark
then ayu-darkColour
else if currentTheme == ayu-light
then ayu-lightColour
else if currentTheme == ayu-mirage
then ayu-mirageColour
# Catppuccin
else if currentTheme == catppuccin-mocha
2025-01-14 16:17:42 -06:00
then catppuccin-mochaColour
else if currentTheme == catppuccin-macchiato
then catppuccin-macchiatoColour
else if currentTheme == catppuccin-frappe
then catppuccin-frappeColour
else if currentTheme == catppuccin-latte
then catppuccin-latteColour
2025-01-14 19:40:12 -06:00
else if currentTheme == cobalt2
then cobalt2Colour
2025-01-14 16:17:42 -06:00
# Dracula
else if currentTheme == dracula
then draculaColour
#Gruvbox
else if currentTheme == gruvbox-dark
then gruvbox-darkColour
else if currentTheme == gruvbox-light
then gruvbox-lightColour
2025-01-14 19:40:12 -06:00
# Houston
else if currentTheme == houston
then houstonColour
# Kanagawa
else if currentTheme == kanagawa-dragon
then kanagawa-dragonColour
else if currentTheme == kanagawa-lotus
then kanagawa-lotusColour
else if currentTheme == kanagawa-wave
then kanagawa-waveColour
# Laserwave
else if currentTheme == laserwave
then laserwaveColour
# Lunar
else if currentTheme == lunar
then lunarColour
2025-01-14 16:17:42 -06:00
# Material
else if currentTheme == material-darker
then material-darkerColour
else if currentTheme == material-deep-ocean
then material-deep-oceanColour
else if currentTheme == material-forest
then material-forestColour
else if currentTheme == material-lighter
then material-lighterColour
else if currentTheme == material-oceanic
then material-oceanicColour
else if currentTheme == material-palenight
then material-palenightColour
else if currentTheme == material-sandy-beach
then material-sandy-beachColour
else if currentTheme == material-sky-blue
then material-sky-blueColour
else if currentTheme == material-space
then material-spaceColour
else if currentTheme == material-volcano
then material-volcanoColour
2025-01-14 19:40:12 -06:00
# Monokai
else if currentTheme == monokai
then monokaiColour
# Night Owl
else if currentTheme == night-owl
then night-owlColour
2025-01-14 16:17:42 -06:00
# Nord
else if currentTheme == nord
then nordColour
2025-01-14 19:40:12 -06:00
# Ocean Next
else if currentTheme == ocean-next
then ocean-nextColour
# One Dark
2025-01-14 16:17:42 -06:00
else if currentTheme == one-dark
then one-darkColour
2025-01-14 19:40:12 -06:00
# Plastic
else if currentTheme == plastic
then plasticColour
# Poimandres
else if currentTheme == poimandres-base
then poimandres-baseColour
else if currentTheme == poimandres-storm
then poimandres-stormColour
2025-01-14 16:17:42 -06:00
# Rosepine
else if currentTheme == rosepine
then rosepineColour
else if currentTheme == rosepine-moon
then rosepine-moonColour
else if currentTheme == rosepine-dawn
then rosepine-dawnColour
# Solorized
else if currentTheme == solorized-dark
then solorized-darkColour
else if currentTheme == solorized-light
then solorized-lightColour
2025-01-14 19:40:12 -06:00
# Synthwave 84
else if currentTheme == synthwave-84
then synthwave-84Colour
2025-01-14 16:17:42 -06:00
# Tokyo Night
else if currentTheme == tokyo-night-night
then tokyo-night-nightColor
else if currentTheme == tokyo-night-storm
then tokyo-night-stormColor
else if currentTheme == tokyo-night-day
then tokyo-night-dayColor
2025-01-14 19:40:12 -06:00
# Vesper
else if currentTheme == vesper
then vesperColour
# Wasp
else if currentTheme == wasp
then waspColour
2025-01-14 16:17:42 -06:00
else throw errorMessage;
2024-12-19 19:56:45 -06:00
in {
2025-01-14 16:17:42 -06:00
themes = {
currentTheme = currentTheme;
font = "MonaspiceRn Nerd Font";
schemes = let
2025-01-14 19:40:12 -06:00
ayuPath = /ayu;
2025-01-14 16:17:42 -06:00
catppuccinPath = /catppuccin;
gruvboxPath = /gruvbox;
2025-01-14 19:40:12 -06:00
kanagawaPath = /kanagawa;
2025-01-14 16:17:42 -06:00
materialPath = /material;
2025-01-14 19:40:12 -06:00
poimandresPath = /poimandres;
2025-01-14 16:17:42 -06:00
rosepinePath = /rosepine;
toyko-nightPath = /tokyo-night;
solarizedPath = /solarized;
in {
2025-01-14 19:40:12 -06:00
${ayu-dark} = import (schemePath + ayuPath + /dark);
${ayu-light} = import (schemePath + ayuPath + /light);
${ayu-mirage} = import (schemePath + ayuPath + /mirage);
2025-01-14 16:17:42 -06:00
${catppuccin-frappe} = import (schemePath + catppuccinPath + /frappe);
${catppuccin-latte} = import (schemePath + catppuccinPath + /latte);
${catppuccin-macchiato} = import (schemePath + catppuccinPath + /macchiato);
${catppuccin-mocha} = import (schemePath + catppuccinPath + /mocha);
2025-01-14 19:40:12 -06:00
${cobalt2} = import (schemePath + /cobalt2);
2025-01-14 16:17:42 -06:00
${dracula} = import (schemePath + /dracula);
${gruvbox-dark} = import (schemePath + gruvboxPath + /dark);
${gruvbox-light} = import (schemePath + gruvboxPath + /light);
2025-01-14 19:40:12 -06:00
${houston} = import (schemePath + /houston);
${kanagawa-dragon} = import (schemePath + kanagawaPath + /kanagawa);
${kanagawa-lotus} = import (schemePath + kanagawaPath + /kanagawa);
${kanagawa-wave} = import (schemePath + kanagawaPath + /kanagawa);
${laserwave} = import (schemePath + /laserwave);
${lunar} = import (schemePath + /lunar);
2025-01-14 16:17:42 -06:00
${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);
2025-01-14 19:40:12 -06:00
${monokai} = import (schemePath + /monokai);
${night-owl} = import (schemePath + /night-owl);
2025-01-14 16:17:42 -06:00
${nord} = import (schemePath + /nord);
2025-01-14 19:40:12 -06:00
${ocean-next} = import (schemePath + /ocean-next);
2025-01-14 16:17:42 -06:00
${one-dark} = import (schemePath + /one-dark);
2025-01-14 19:40:12 -06:00
${poimandres-base} = import (schemePath + poimandresPath + /base);
${poimandres-storm} = import (schemePath + poimandresPath + /storm);
2025-01-14 16:17:42 -06:00
${rosepine} = 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);
2025-01-14 19:40:12 -06:00
${synthwave-84} = import (schemePath + /synthwave-84);
${vesper} = import (schemePath + /vesper);
${wasp} = import (schemePath + /wasp);
2025-01-14 16:17:42 -06:00
};
currentColours = {
# Core Text Colours
text =
mapColour
"text" # catppuccin-macchiato
"text" # rosepine
"foreground"; #dracula
subtext1 =
mapColour
"subtext1"
"subtle"
"foreground";
subtext0 =
mapColour
"subtext0"
"muted"
"foreground";
# Background Colours
background0 =
mapColour
"crust"
"highlight0"
"background";
background1 =
mapColour
"base"
"base"
"background";
background2 =
mapColour
"mantle"
"surface"
"background";
# Surface Colours
surface0 =
mapColour
"surface0"
"highlight0"
"background";
surface1 =
mapColour
"surface1"
"highlight1"
"background";
surface2 =
mapColour
"surface2"
"highlight2"
"background";
# Overlay Colours
overlay0 =
mapColour
"overlay0"
"muted"
"background";
overlay1 =
mapColour
"overlay1"
"subtle"
"background";
overlay2 =
mapColour
"overlay2"
"subtle"
"background";
# Diagnostic Colours
error =
mapColour
"red"
"love"
"red";
warning =
mapColour
"yellow"
"gold"
"yellow";
noError =
mapColour
"green"
"pine"
"green";
# Warm Accent Colours
warmAccent0 =
mapColour
"rosewater"
"rose"
"pink";
warmAccent1 =
mapColour
"flamingo"
"rose"
"pink";
warmAccent2 =
mapColour
"mauve"
"iris"
"purple";
warmAccent3 =
mapColour
"maroon"
"love"
"orange";
warmAccent4 =
mapColour
"peach"
"gold"
"orange";
warmAccent5 =
mapColour
"pink"
"love"
"purple";
# Cool Accent Colours
coolAccent0 =
mapColour
"teal"
"foam"
"comment";
coolAccent1 =
mapColour
"sky"
"foam"
"cyan";
coolAccent2 =
mapColour
"sapphire"
"foam"
"cyan";
coolAccent3 =
mapColour
"blue"
"pine"
"comment";
coolAccent4 =
mapColour
"lavender"
"iris"
"cyan";
};
};
2024-12-19 19:56:45 -06:00
}