let currentTheme = catppuccin-macchiato; # Ayu ayu-dark = "ayu-dark"; ayu-light = "ayu-light"; ayu-mirage = "ayu-mirage"; # Catppuccin catppuccin-frappe = "catppuccin-frappe"; catppuccin-latte = "catppuccin-latte"; catppuccin-macchiato = "catppuccin-macchiato"; catppuccin-mocha = "catppuccin-mocha"; # Dracula dracula = "dracula"; # Gruvbox gruvbox-dark = "gruvbox-dark"; gruvbox-light = "gruvbox-light"; # Houston houston = "houston"; # Kanagawa kanagawa-dragon = "kanagawa-dragon"; kanagawa-lotus = "kanagawa-lotus"; kanagawa-wave = "kanagawa-wave"; # Laserwave laserwave = "laserwave"; #Lunar lunar = "lunar"; # 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"; # Monokai monokai = "monokai"; # Night Owl night-owl = "night-owl"; # Nord nord = "nord"; #Ocean Next ocean-next = "ocean-next"; # One Dark one-dark = "one-dark"; # Plastic plastic = "plastic"; # Poimandres poimandres-base = "poimandres-base"; poimandres-storm = "poimandres-storm"; # Rosepine rosepine-base = "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"; # Synthwave 84 synthwave-84 = "synthwave-84"; # Vesper vesper = "vesper"; # Wasp wasp-dark = "wasp-dark"; wasp-light = "wasp-light"; 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); mapColour = # 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 rosepine-baseColour: rosepine-dawnColour: rosepine-moonColour: # Solorized solorized-darkColour: solorized-lightColour: # Synthwave 84 synthwave-84Colour: # Tokyo Night tokyo-night-dayColour: tokyo-night-nightColour: tokyo-night-stormColour: # Vesper vesperColour: # Wasp wasp-darkColour: wasp-lightColour: mkThemeMap [ # 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 rosepine-base rosepine-dawn rosepine-moon # Solorized solorized-dark solorized-light # Synthwave 84 synthwave-84 # Tokyo Night tokyo-night-day tokyo-night-night tokyo-night-storm # Vesper vesper # Wasp wasp-dark wasp-light ] [ # 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 rosepine-baseColour rosepine-dawnColour rosepine-moonColour # Solorized solorized-darkColour solorized-lightColour # Synthwave 84 synthwave-84Colour # Tokyo Night tokyo-night-dayColour tokyo-night-nightColour tokyo-night-stormColour # Vesper vesperColour # Wasp wasp-darkColour wasp-lightColour ]; 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;}; }; }