feat: dank themes module

This commit is contained in:
Nick 2025-01-14 20:28:48 -06:00
parent de0e79f326
commit 4f61cbcccc
4 changed files with 457 additions and 236 deletions

View file

@ -74,11 +74,18 @@ let
schemePath = ./schemes; schemePath = ./schemes;
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 = mapColour =
# Ayu # Ayu
ayu-darkColour: ayu-lightColour: ayu-mirageColour: ayu-darkColour: ayu-lightColour: ayu-mirageColour:
# Catppuccin # Catppuccin
catppuccin-latteColour: catppuccin-frappeColour: catppuccin-macchiatoColour: catppuccin-mochaColour: catppuccin-frappeColour: catppuccin-latteColour: catppuccin-macchiatoColour: catppuccin-mochaColour:
# Cobalt2 # Cobalt2
cobalt2Colour: cobalt2Colour:
# Dracula # Dracula
@ -121,121 +128,147 @@ let
vesperColour: vesperColour:
# Wasp # Wasp
waspColour: waspColour:
mkThemeMap [
# Ayu # Ayu
if currentTheme == ayu-dark ayu-dark
then ayu-darkColour ayu-light
else if currentTheme == ayu-light ayu-mirage
then ayu-lightColour
else if currentTheme == ayu-mirage
then ayu-mirageColour
# Catppuccin # Catppuccin
else if currentTheme == catppuccin-mocha catppuccin-frappe
then catppuccin-mochaColour catppuccin-latte
else if currentTheme == catppuccin-macchiato catppuccin-macchiato
then catppuccin-macchiatoColour catppuccin-mocha
else if currentTheme == catppuccin-frappe # Cobalt2
then catppuccin-frappeColour cobalt2
else if currentTheme == catppuccin-latte
then catppuccin-latteColour
else if currentTheme == cobalt2
then cobalt2Colour
# Dracula # Dracula
else if currentTheme == dracula dracula
then draculaColour # Gruvbox
#Gruvbox gruvbox-dark
else if currentTheme == gruvbox-dark gruvbox-light
then gruvbox-darkColour
else if currentTheme == gruvbox-light
then gruvbox-lightColour
# Houston # Houston
else if currentTheme == houston houston
then houstonColour
# Kanagawa # Kanagawa
else if currentTheme == kanagawa-dragon kanagawa-dragon
then kanagawa-dragonColour kanagawa-lotus
else if currentTheme == kanagawa-lotus kanagawa-wave
then kanagawa-lotusColour
else if currentTheme == kanagawa-wave
then kanagawa-waveColour
# Laserwave # Laserwave
else if currentTheme == laserwave laserwave
then laserwaveColour
# Lunar # Lunar
else if currentTheme == lunar lunar
then lunarColour
# Material # Material
else if currentTheme == material-darker material-darker
then material-darkerColour material-deep-ocean
else if currentTheme == material-deep-ocean material-forest
then material-deep-oceanColour material-lighter
else if currentTheme == material-forest material-oceanic
then material-forestColour material-palenight
else if currentTheme == material-lighter material-sandy-beach
then material-lighterColour material-sky-blue
else if currentTheme == material-oceanic material-space
then material-oceanicColour material-volcano
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
# Monokai # Monokai
else if currentTheme == monokai monokai
then monokaiColour
# Night Owl # Night Owl
else if currentTheme == night-owl night-owl
then night-owlColour
# Nord # Nord
else if currentTheme == nord nord
then nordColour
# Ocean Next # Ocean Next
else if currentTheme == ocean-next ocean-next
then ocean-nextColour
# One Dark # One Dark
else if currentTheme == one-dark one-dark
then one-darkColour
# Plastic # Plastic
else if currentTheme == plastic plastic
then plasticColour
# Poimandres # Poimandres
else if currentTheme == poimandres-base poimandres-base
then poimandres-baseColour poimandres-storm
else if currentTheme == poimandres-storm
then poimandres-stormColour
# Rosepine # Rosepine
else if currentTheme == rosepine rosepine
then rosepineColour rosepine-moon
else if currentTheme == rosepine-moon rosepine-dawn
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
# Synthwave 84
else if currentTheme == synthwave-84
then synthwave-84Colour
# Tokyo Night # Tokyo Night
else if currentTheme == tokyo-night-night tokyo-night-night
then tokyo-night-nightColor tokyo-night-storm
else if currentTheme == tokyo-night-storm tokyo-night-day
then tokyo-night-stormColor # Solorized
else if currentTheme == tokyo-night-day solorized-dark
then tokyo-night-dayColor solorized-light
# Synthwave 84
synthwave-84
# Vesper # Vesper
else if currentTheme == vesper vesper
then vesperColour
# Wasp # Wasp
else if currentTheme == wasp wasp
then waspColour ] [
else throw errorMessage; # Ayu
ayu-darkColour
ayu-lightColour
ayu-mirageColour
# Catppuccin
catppuccin-frappeColour
catppuccin-latteColour
catppuccin-macchiatoColour
catppuccin-mochaColour
# Cobalt2
cobalt2Colour
# 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
rosepineColour
rosepine-moonColour
rosepine-dawnColour
# Tokyo Night
tokyo-night-nightColor
tokyo-night-stormColor
tokyo-night-dayColor
# Solorized
solorized-darkColour
solorized-lightColour
# Synthwave 84
synthwave-84Colour
# Vesper
vesperColour
# Wasp
waspColour
];
in { in {
themes = { themes = {
currentTheme = currentTheme; currentTheme = currentTheme;
@ -301,152 +334,358 @@ in {
# Core Text Colours # Core Text Colours
text = text =
mapColour mapColour
"text" # catppuccin-frappe
"text" # catppuccin-latte
"text" # catppuccin-macchiato "text" # catppuccin-macchiato
"text" # catppuccin-mocha
"text" # rosepine "text" # rosepine
"foreground"; #dracula "foreground"; # dracula
subtext1 =
mapColour
"subtext1"
"subtle"
"foreground";
subtext0 = subtext0 =
mapColour mapColour
"subtext0" "subtext0" # catppuccin-frappe
"muted"
"foreground";
"subtext0" # catppuccin-latte
"subtext0" # catppuccin-macchiato
"subtext0" # catppuccin-mocha
"muted" # rosepine
"foreground"; # dracula
subtext1 =
mapColour
"subtext1" # catppuccin-frappe
"subtext1" # catppuccin-latte
"subtext1" # catppuccin-macchiato
"subtext1" # catppuccin-mocha
"subtle" # rosepine
"foreground"; # dracula
# Background Colours # Background Colours
background0 = background0 =
mapColour mapColour
"crust" "crust" # catppuccin-frappe
"highlight0"
"background"; "crust" # catppuccin-latte
"crust" # catppuccin-macchiato
"crust" # catppuccin-mocha
"highlight0" # rosepine
"background"; # dracula
background1 = background1 =
mapColour mapColour
"base" "base" # catppuccin-frappe
"base"
"background"; "base" # catppuccin-latte
"base" # catppuccin-macchiato
"base" # catppuccin-mocha
"base" # rosepine
"background"; # dracula
background2 = background2 =
mapColour mapColour
"mantle" "mantle" # catppuccin-frappe
"surface"
"background"; "mantle" # catppuccin-latte
"mantle" # catppuccin-macchiato
"mantle" # catppuccin-mocha
"surface" # rosepine
"background"; # dracula
# Surface Colours # Surface Colours
surface0 = surface0 =
mapColour mapColour
"surface0" "surface0" # catppuccin-frappe
"highlight0"
"background"; "surface0" # catppuccin-latte
"surface0" # catppuccin-macchiato
"surface0" # catppuccin-mocha
"highlight0" # rosepine
"background"; # dracula
surface1 = surface1 =
mapColour mapColour
"surface1" "surface1" # catppuccin-frappe
"highlight1"
"background"; "surface1" # catppuccin-latte
"surface1" # catppuccin-macchiato
"surface1" # catppuccin-mocha
"highlight1" # rosepine
"background"; # dracula
surface2 = surface2 =
mapColour mapColour
"surface2" "surface2" # catppuccin-frappe
"highlight2"
"background"; "surface2" # catppuccin-latte
"surface2" # catppuccin-macchiato
"surface2" # catppuccin-mocha
"highlight2" # rosepine
"background"; # dracula
# Overlay Colours # Overlay Colours
overlay0 = overlay0 =
mapColour mapColour
"overlay0" "overlay0" # catppuccin-frappe
"muted"
"background"; "overlay0" # catppuccin-latte
"overlay0" # catppuccin-macchiato
"overlay0" # catppuccin-mocha
"muted" # rosepine
"background"; # dracula
overlay1 = overlay1 =
mapColour mapColour
"overlay1" "overlay1" # catppuccin-frappe
"subtle"
"background";
overlay2 =
mapColour
"overlay2"
"subtle"
"background";
"overlay1" # catppuccin-latte
"overlay1" # catppuccin-macchiato
"overlay1" # catppuccin-mocha
"subtle" # rosepine
"background"; # dracula
overlay2 =
# and comments
mapColour
"overlay2" # catppuccin-frappe
"overlay2" # catppuccin-latte
"overlay2" # catppuccin-macchiato
"overlay2" # catppuccin-mocha
"subtle" # rosepine
"background"; # dracula
# Diagnostic Colours # Diagnostic Colours
error = error =
mapColour mapColour
"red" "red" # catppuccin-frappe
"love"
"red"; "red" # catppuccin-latte
"red" # catppuccin-macchiato
"red" # catppuccin-mocha
"love" # rosepine
"red"; # dracula
warning = warning =
mapColour mapColour
"yellow" "yellow" # catppuccin-frappe
"gold"
"yellow"; "yellow" # catppuccin-latte
"yellow" # catppuccin-macchiato
"yellow" # catppuccin-mocha
"gold" # rosepine
"yellow"; # dracula
noError = noError =
mapColour mapColour
"green" "green" # catppuccin-frappe
"pine"
"green";
# Warm Accent Colours "green" # catppuccin-latte
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";
"green" # catppuccin-macchiato
"green" # catppuccin-mocha
"pine" # rosepine
"green"; # dracula
label =
mapColour
"rosewater" # catppuccin-frappe
"rosewater" # catppuccin-latte
"rosewater" # catppuccin-macchiato
"rosewater" # catppuccin-mocha
"rose" # rosepine
"pink"; # dracula
selection =
mapColour
"flamingo" # catppuccin-latte
"flamingo" # catppuccin-frappe
"flamingo" # catppuccin-macchiato
"flamingo" # catppuccin-mocha
"rose" # rosepine
"pink"; # dracula
keyword =
mapColour
"mauve" # catppuccin-frappe
"mauve" # catppuccin-latte
"mauve" # catppuccin-macchiato
"mauve" # catppuccin-mocha
"iris" # rosepine
"purple"; # dracula
parameter =
mapColour
"maroon" # catppuccin-frappe
"maroon" # catppuccin-latte
"maroon" # catppuccin-macchiato
"maroon" # catppuccin-mocha
"love" # rosepine
"orange"; # dracula
constant =
mapColour
"peach" # catppuccin-frappe
"peach" # catppuccin-latte
"peach" # catppuccin-macchiato
"peach" # catppuccin-mocha
"gold" # rosepine
"orange"; # dracula
regex =
mapColour
"pink" # catppuccin-frappe
"pink" # catppuccin-latte
"pink" # catppuccin-macchiato
"pink" # catppuccin-mocha
"love" # rosepine
"purple"; # dracula
character =
mapColour
"teal" # catppuccin-frappe
"teal" # catppuccin-latte
"teal" # catppuccin-macchiato
"teal" # catppuccin-mocha
"foam" # rosepine
"comment"; # dracula
# Cool Accent Colours # Cool Accent Colours
coolAccent0 = operator =
mapColour mapColour
"teal" "sky" # catppuccin-frappe
"foam"
"comment"; "sky" # catppuccin-latte
coolAccent1 =
"sky" # catppuccin-macchiato
"sky" # catppuccin-mocha
"foam" # rosepine
"cyan"; # dracula
constructor =
mapColour mapColour
"sky" "sapphire" # catppuccin-frappe
"foam"
"cyan"; "sapphire" # catppuccin-latte
coolAccent2 =
"sapphire" # catppuccin-macchiato
"sapphire" # catppuccin-mocha
"foam" # rosepine
"cyan"; # dracula
function =
mapColour mapColour
"sapphire" "blue" # catppuccin-frappe
"foam"
"cyan"; "blue" # catppuccin-latte
coolAccent3 =
"blue" # catppuccin-macchiato
"blue" # catppuccin-mocha
"pine" # rosepine
"comment"; # dracula
link =
mapColour mapColour
"blue" "lavender" # catppuccin-frappe
"pine"
"comment"; "lavender" # catppuccin-latte
coolAccent4 =
mapColour "lavender" # catppuccin-macchiato
"lavender"
"iris" "lavender" # catppuccin-mocha
"cyan";
"iris" # rosepine
"cyan"; # dracula
}; };
}; };
} }

View file

@ -17,19 +17,13 @@
editor_fg = "BFBDB6"; editor_fg = "BFBDB6";
editor_bg = "0D1017"; editor_bg = "0D1017";
editor_line = "131721"; editor_line = "131721";
editor_selection_active = "409FFF"; editor_selection = "409FFF";
editor_selection_inactive = "409FFF"; editor_match = "6C5980";
editor_findMatch_active = "6C5980"; editor_indent = "6C7380";
editor_findMatch_inactive = "6C5980";
editor_gutter_active = "6C7380";
editor_gutter_normal = "6C7380";
editor_indentGuide_active = "6C7380";
editor_indentGuide_normal = "6C7380";
ui_fg = "565B66"; ui_fg = "565B66";
ui_bg = "0B0E14"; ui_bg = "0B0E14";
ui_line = "11151C"; ui_line = "11151C";
ui_selection_active = "475266"; ui_selection = "475266";
ui_selection_normal = "475266";
ui_panel_bg = "0F131A"; ui_panel_bg = "0F131A";
ui_panel_shadow = "000000"; ui_panel_shadow = "000000";
accent = "E6B450"; accent = "E6B450";

View file

@ -16,15 +16,8 @@
removed = "FF7383"; removed = "FF7383";
editor_fg = "5C6166"; editor_fg = "5C6166";
editor_bg = "FCFCFC"; editor_bg = "FCFCFC";
editor_line = "8A9199"; editor_selection = "035BD6";
editor_selection_active = "035BD6"; editor_match = "9F40FF";
editor_selection_inactive = "035BD6";
editor_findMatch_active = "9F40FF";
editor_findMatch_inactive = "9F40FF";
editor_gutter_active = "8A9199";
editor_gutter_normal = "8A9199";
editor_indentGuide_active = "8A9199";
editor_indentGuide_normal = "8A9199";
ui_fg = "8A9199"; ui_fg = "8A9199";
ui_bg = "F8F9FA"; ui_bg = "F8F9FA";
ui_line = "6B7D8F"; ui_line = "6B7D8F";

View file

@ -17,14 +17,9 @@
editor_fg = "CCCAC2"; editor_fg = "CCCAC2";
editor_bg = "242936"; editor_bg = "242936";
editor_line = "1A1F29"; editor_line = "1A1F29";
editor_selection_active = "409FFF"; editor_selection = "409FFF";
editor_selection_inactive = "409FFF"; editor_match = "695380";
editor_findMatch_active = "695380"; editor_indent = "8A9199";
editor_findMatch_inactive = "695380";
editor_gutter_active = "8A9199";
editor_gutter_normal = "8A9199";
editor_indentGuide_active = "8A9199";
editor_indentGuide_normal = "8A9199";
ui_fg = "707A8C"; ui_fg = "707A8C";
ui_bg = "1F2430"; ui_bg = "1F2430";
ui_line = "171B24"; ui_line = "171B24";