feat: dank themes module

This commit is contained in:
Nick 2025-01-14 16:17:42 -06:00
parent 616ce7fbca
commit 87b2f7e687
62 changed files with 1589 additions and 201 deletions

15
.zed/settings.json Executable file
View file

@ -0,0 +1,15 @@
{
"languages": {
"nix": {
"enable_language_server": true
}
},
"formatter": {
"external": {
"command": "nixfmt",
"arguments": ["-"],
"standalone": true
}
},
"format_on_save": "on"
}

View file

@ -11,6 +11,9 @@
attrList = lib.mkOption {
type = lib.types.attrsOf lib.types.str;
};
boolType = lib.mkOption {
type = lib.types.bool;
};
numOptions = 20;
@ -89,8 +92,16 @@
themesSubmodule = lib.types.submodule {
options = {
colors = attrList;
currentTheme = stringType;
schemes = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule {
options = {
colours = attrList;
};
});
};
font = stringType;
currentColours = attrList;
};
};
in {
@ -135,10 +146,10 @@ in {
aesthetics = lib.mkOption {
type = lib.types.submodule {
options =
mkOptionsFromDir ./themes/config
mkOptionsFromDir ./themes
// {
themes = lib.mkOption {
type = lib.types.attrsOf themesSubmodule;
type = themesSubmodule;
};
};
};

View file

@ -1,17 +1,319 @@
let
configPath = ./config;
currentTheme = catppuccin-macchiato;
# Catppuccin
catppuccin-latte = "catppuccin-latte";
catppuccin-frappe = "catppuccin-frappe";
catppuccin-macchiato = "catppuccin-macchiato";
catppuccin-mocha = "catppuccin-mocha";
# Dracula
dracula = "dracula";
# Gruvbox
gruvbox-dark = "gruvbox-dark";
gruvbox-light = "gruvbox-light";
# 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";
# Nord
nord = "nord";
# One Dark
one-dark = "one-dark";
# 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";
#
errorMessage = "Unknown theme: ${currentTheme}";
themeFunctions = {
dummy = [];
};
schemePath = ./schemes;
themes = builtins.listToAttrs (map (name: {
name = builtins.substring 0 (builtins.stringLength name - 4) name;
value = import (configPath + "/${name}") {inherit themeFunctions;};
})
(builtins.filter (name:
builtins.match ".*\\.nix$" name != null) (builtins.attrNames
(builtins.readDir configPath))));
mapColour =
# Catppuccin
catppuccin-latteColour: catppuccin-frappeColour: catppuccin-macchiatoColour: catppuccin-mochaColour:
# Dracula
draculaColour:
# Gruvbox
gruvbox-darkColour: gruvbox-lightColour:
# Material
material-darkerColour: material-deep-oceanColour: material-forestColour: material-lighterColour: material-oceanicColour: material-palenightColour: material-sandy-beachColour: material-sky-blueColour: material-spaceColour: material-volcanoColour:
# Nord
nordColour:
# One Dark
one-darkColour:
# Rosepine
rosepineColour: rosepine-moonColour: rosepine-dawnColour:
# Tokyo Night
tokyo-night-nightColor: tokyo-night-stormColor: tokyo-night-dayColor:
# Solorized
solorized-darkColour: solorized-lightColour:
# Catppuccin
if currentTheme == catppuccin-mocha
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
# Dracula
else if currentTheme == dracula
then draculaColour
#Gruvbox
else if currentTheme == gruvbox-dark
then gruvbox-darkColour
else if currentTheme == gruvbox-light
then gruvbox-lightColour
# 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
# Nord
else if currentTheme == nord
then nordColour
# Nord
else if currentTheme == one-dark
then one-darkColour
# 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
# 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
else throw errorMessage;
in {
themes = themes;
themes = {
currentTheme = currentTheme;
font = "MonaspiceRn Nerd Font";
schemes = let
catppuccinPath = /catppuccin;
gruvboxPath = /gruvbox;
materialPath = /material;
rosepinePath = /rosepine;
toyko-nightPath = /tokyo-night;
solarizedPath = /solarized;
in {
${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);
${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);
${nord} = import (schemePath + /nord);
${one-dark} = import (schemePath + /one-dark);
${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);
};
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";
};
};
}

View file

@ -0,0 +1,30 @@
{
colours = {
rosewater = "f2d5cf";
flamingo = "eebebe";
pink = "f4b8e4";
mauve = "ca9ee6";
red = "e78284";
maroon = "ea999c";
peach = "ef9f76";
yellow = "e5c890";
green = "a6d189";
teal = "81c8be";
sky = "99d1db";
sapphire = "85c1dc";
blue = "8caaee";
lavender = "babbf1";
text = "c6d0f5";
subtext1 = "b5bfe2";
subtext0 = "a5adce";
overlay2 = "949cbb";
overlay1 = "838ba7";
overlay0 = "737994";
surface2 = "626880";
surface1 = "51576d";
surface0 = "414559";
base = "303446";
mantle = "292c3c";
crust = "232634";
};
}

View file

@ -0,0 +1,30 @@
{
colours = {
rosewater = "dc8a78";
flamingo = "dd7878";
pink = "ea76cb";
mauve = "8839ef";
red = "d20f39";
maroon = "e64553";
peach = "fe640b";
yellow = "df8e1d";
green = "40a02b";
teal = "179299";
sky = "04a5e5";
sapphire = "209fb5";
blue = "1e66f5";
lavender = "7287fd";
text = "4c4f69";
subtext1 = "5c5f77";
subtext0 = "6c6f85";
overlay2 = "7c7f93";
overlay1 = "8c8fa1";
overlay0 = "9ca0b0";
surface2 = "acb0be";
surface1 = "bcc0cc";
surface0 = "ccd0da";
base = "eff1f5";
mantle = "e6e9ef";
crust = "dce0e8";
};
}

View file

@ -1,5 +1,5 @@
{themeFunctions}: {
colors = {
{
colours = {
rosewater = "f4dbd6";
flamingo = "f0c6c6";
pink = "f5bde6";
@ -27,5 +27,4 @@
mantle = "1e2030";
crust = "181926";
};
font = "MonaspiceRn Nerd Font";
}

View file

@ -0,0 +1,30 @@
{
colours = {
rosewater = "f5e0dc";
flamingo = "f2cdcd";
pink = "f5c2e7";
mauve = "cba6f7";
red = "f38ba8";
maroon = "eba0ac";
peach = "fab387";
yellow = "f9e2af";
green = "a6e3a1";
teal = "94e2d5";
sky = "89dceb";
sapphire = "74c7ec";
blue = "89b4fa";
lavender = "b4befe";
text = "cdd6f4";
subtext1 = "bac2de";
subtext0 = "a6adc8";
overlay2 = "9399b2";
overlay1 = "7f849c";
overlay0 = "6c7086";
surface2 = "585b70";
surface1 = "45475a";
surface0 = "313244";
base = "1e1e2e";
mantle = "181825";
crust = "11111b";
};
}

View file

@ -0,0 +1,16 @@
{
colours = {
background = "282a36";
currentLine = "44475a";
selection = "44475a";
foreground = "f8f8f2";
comment = "6272a4";
cyan = "8be9fd";
green = "50fa7b";
orange = "ffb86c";
pink = "ff79c6";
purple = "bd93f9";
red = "ff5555";
yellow = "f1fa8c";
};
}

View file

@ -0,0 +1,32 @@
{
colours = {
background0 = "282828";
background1 = "3c3836";
background2 = "504945";
background3 = "665c54";
background4 = "7c6f64";
background_hard = "1d2021";
background_soft = "32302f";
foreground0 = "fbf1c7";
foreground1 = "ebdbb2";
foreground2 = "d5c4a1";
foreground3 = "bdae93";
foreground4 = "a89984";
gray = "928374";
grayBright = "a89984";
red = "cc241d";
redBright = "fb4934";
green = "98971a";
greenBright = "b8bb26";
yellow = "d79921";
YellowBright = "fabd2f";
blue = "458588";
BlueBright = "83a598";
purple = "b16286";
PurpleBright = "d3869b";
aqua = "689d6a";
AquaBright = "8ec07c";
orange = "d65d0e";
OrangeBright = "fe8019";
};
}

View file

@ -0,0 +1,32 @@
{
colours = {
background0 = "fbf1c7";
background1 = "ebdbb2";
background2 = "d5c4a1";
background3 = "bdae93";
background4 = "a89984";
background_hard = "f9f5d7";
background_soft = "f2e5bc";
foreground0 = "282828";
foreground1 = "3c3836";
foreground2 = "504945";
foreground3 = "665c54";
foreground4 = "7c6f64";
gray = "7c6f64";
grayBright = "928374";
red = "9d0006";
redBright = "cc241d";
green = "79740e";
greenBright = "98971a";
yellow = "b57614";
YellowBright = "d79921";
blue = "076678";
BlueBright = "458588";
purple = "8f3f71";
PurpleBright = "b16286";
aqua = "427b58";
AquaBright = "689d6a";
orange = "af3a03";
OrangeBright = "d65d0e";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "B0BEC5";
text = "727272";
background-selection = "404040";
foreground-selection = "FFFFFF";
buttons = "2A2A2A";
disabled = "474747";
contrast = "1A1A1A";
active = "323232";
border = "292929";
highlight = "3F3F3F";
tree = "323232C0";
notifications = "1A1A1A";
accent = "FF9800";
excluded-files = "323232";
green = "c3e88d";
yellow = "ffcb6b";
blue = "82aaff";
red = "f07178";
purple = "c792ea";
orange = "f78c6c";
cyan = "89ddff";
gray = "616161";
white = "eeffff";
error = "ff5370";
comments = "616161";
variables = "eeffff";
links = "80cbc4";
functions = "82aaff";
keywords = "c792ea";
tags = "f07178";
strings = "c3e88d";
operators = "89ddff";
attributes = "ffcb6b";
numbers = "f78c6c";
parameters = "f78c6c";
background0 = "212121";
background1 = "292929";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "8F93A2";
text = "4B526D";
background-selection = "717CB480";
foreground-selection = "FFFFFF";
buttons = "191A21";
disabled = "464B5D";
contrast = "090B10";
active = "1A1C25";
border = "0F111A";
highlight = "1F2233";
tree = "717CB430";
notifications = "090B10";
accent = "84ffff";
excluded-files = "292D3E";
green = "c3e88d";
yellow = "ffcb6b";
blue = "82aaff";
red = "f07178";
purple = "c792ea";
orange = "f78c6c";
cyan = "89ddff";
gray = "717CB4";
white = "eeffff";
error = "ff5370";
comments = "717CB4";
variables = "eeffff";
links = "80cbc4";
functions = "82aaff";
keywords = "c792ea";
tags = "f07178";
strings = "c3e88d";
operators = "89ddff";
attributes = "ffcb6b";
numbers = "f78c6c";
parameters = "f78c6c";
background0 = "0F111A";
background1 = "181A1F";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "B2C2B0";
text = "49694D";
background-selection = "1E611E";
foreground-selection = "FFFFFF";
buttons = "003535";
disabled = "005454";
contrast = "002020";
active = "104110";
border = "003838";
highlight = "003F3F";
tree = "32CD3250";
notifications = "002020";
accent = "FFCC80";
excluded-files = "113711";
green = "c3e88d";
yellow = "ffcb6b";
blue = "82aaff";
red = "f07178";
purple = "c792ea";
orange = "f78c6c";
cyan = "89ddff";
gray = "005454";
white = "eeffff";
error = "ff5370";
comments = "005454";
variables = "eeffff";
links = "80cbc4";
functions = "82aaff";
keywords = "c792ea";
tags = "f07178";
strings = "c3e88d";
operators = "89ddff";
attributes = "ffcb6b";
numbers = "f78c6c";
parameters = "f78c6c";
background0 = "002626";
background1 = "002E2E";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "546E7A";
text = "94A7B0";
background-selection = "80CBC440";
foreground-selection = "546e7a";
buttons = "F3F4F5";
disabled = "D2D4D5";
contrast = "EEEEEE";
active = "E7E7E8";
border = "d3e1e8";
highlight = "E7E7E8";
tree = "80CBC440";
notifications = "eae8e8";
accent = "00BCD4";
excluded-files = "CCD7DA50";
green = "91b859";
yellow = "f6a434";
blue = "6182b8";
red = "e53935";
purple = "7c4dff";
orange = "f76d47";
cyan = "39adb5";
gray = "AABFC9";
black = "272727";
error = "e53935";
comments = "AABFC9";
variables = "272727";
links = "39ADB5";
functions = "6182B8";
keywords = "7C4DFF";
tags = "E53935";
strings = "91B859";
operators = "39ADB5";
attributes = "F6A434";
numbers = "F76D47";
parameters = "F76D47";
background0 = "FAFAFA";
background1 = "FFFFFF";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "B0BEC5";
text = "607D8B";
background-selection = "546E7A";
foreground-selection = "FFFFFF";
buttons = "2E3C43";
disabled = "415967";
contrast = "1E272C";
active = "314549";
border = "2A373E";
highlight = "425B67";
tree = "546E7A70";
notifications = "1E272C";
accent = "009688";
excluded-files = "2E3C43";
green = "c3e88d";
yellow = "ffcb6b";
blue = "82aaff";
red = "f07178";
purple = "c792ea";
orange = "f78c6c";
cyan = "89ddff";
gray = "546e7a";
white = "eeffff";
error = "ff5370";
comments = "546e7a";
variables = "eeffff";
links = "80cbc4";
functions = "82aaff";
keywords = "c792ea";
tags = "f07178";
strings = "c3e88d";
operators = "89ddff";
attributes = "ffcb6b";
numbers = "f78c6c";
parameters = "f78c6c";
background0 = "263238";
background1 = "32424A";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "A6ACCD";
text = "676E95";
background-selection = "717CB470";
foreground-selection = "FFFFFF";
buttons = "303348";
disabled = "515772";
contrast = "202331";
active = "414863";
border = "2b2a3e";
highlight = "444267";
tree = "676E95";
notifications = "202331";
accent = "ab47bc";
excluded-files = "2f2e43";
green = "c3e88d";
yellow = "ffcb6b";
blue = "82aaff";
red = "f07178";
purple = "c792ea";
orange = "f78c6c";
cyan = "89ddff";
gray = "676E95";
white = "eeffff";
error = "ff5370";
comments = "676E95";
variables = "eeffff";
links = "80cbc4";
functions = "82aaff";
keywords = "c792ea";
tags = "f07178";
strings = "c3e88d";
operators = "89ddff";
attributes = "ffcb6b";
numbers = "f78c6c";
parameters = "f78c6c";
background0 = "292D3E";
background1 = "34324a";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "546E7A";
text = "888477";
background-selection = "e7c496";
foreground-selection = "FFFFFF";
buttons = "f6d7b0";
disabled = "B8B6A5";
contrast = "FFF3DB";
active = "fef8ec";
border = "f2edde";
highlight = "fbf1df";
tree = "e7c49680";
notifications = "f6d7b0";
accent = "53c7f0";
excluded-files = "f2e7ca";
green = "91b859";
yellow = "f6a434";
blue = "6182b8";
red = "e53935";
purple = "7c4dff";
orange = "f76d47";
cyan = "39adb5";
gray = "888477";
black = "272727";
error = "e53935";
comments = "888477";
variables = "272727";
links = "39ADB5";
functions = "6182B8";
keywords = "7C4DFF";
tags = "E53935";
strings = "91B859";
operators = "39ADB5";
attributes = "F6A434";
numbers = "F76D47";
parameters = "F76D47";
background0 = "FFF8ED";
background1 = "f6edda";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "005761";
text = "01579B";
background-selection = "ade2eb";
foreground-selection = "FFFFFF";
buttons = "c9eef2";
disabled = "e7f2f3";
contrast = "E4F2F2";
active = "caedf2";
border = "d0edf1";
highlight = "d1eafa";
tree = "b6e1e780";
notifications = "e0eff1";
accent = "00c6e0";
excluded-files = "c1def0";
green = "91b859";
yellow = "f6a434";
blue = "6182b8";
red = "e53935";
purple = "7c4dff";
orange = "f76d47";
cyan = "39adb5";
gray = "01579B";
black = "272727";
error = "e53935";
comments = "01579B";
variables = "272727";
links = "39ADB5";
functions = "6182B8";
keywords = "7C4DFF";
tags = "E53935";
strings = "91B859";
operators = "39ADB5";
attributes = "F6A434";
numbers = "F76D47";
parameters = "F76D47";
background0 = "F5F5F5";
background1 = "e7f2f3";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "efeff1";
text = "959DAA";
background-selection = "383f56";
foreground-selection = "FFFFFF";
buttons = "313852";
disabled = "5A6270";
contrast = "060F2F";
active = "303c6a";
border = "313852";
highlight = "383f56";
tree = "31385270";
notifications = "080f30";
accent = "ad9bf6";
excluded-files = "2f1d76";
green = "c3e88d";
yellow = "ffcb6b";
blue = "82aaff";
red = "f07178";
purple = "c792ea";
orange = "f78c6c";
cyan = "89ddff";
gray = "959DAA";
white = "eeffff";
error = "ff5370";
comments = "959DAA";
variables = "eeffff";
links = "80cbc4";
functions = "82aaff";
keywords = "c792ea";
tags = "f07178";
strings = "c3e88d";
operators = "89ddff";
attributes = "ffcb6b";
numbers = "f78c6c";
parameters = "f78c6c";
background0 = "1B2240";
background1 = "292f4d";
};
}

View file

@ -0,0 +1,41 @@
{
colours = {
foreground = "ffeaea";
text = "ffd0aa";
background-selection = "750000";
foreground-selection = "FFFFFF";
buttons = "700000";
disabled = "7f3c3c";
contrast = "300000";
active = "440000";
border = "400000";
highlight = "550000";
tree = "77000050";
notifications = "300a0a";
accent = "00bcd4";
excluded-files = "662222";
green = "c3e88d";
yellow = "ffcb6b";
blue = "82aaff";
red = "f07178";
purple = "c792ea";
orange = "f78c6c";
cyan = "89ddff";
gray = "7F6451";
white = "eeffff";
error = "ff5370";
comments = "7F6451";
variables = "eeffff";
links = "80cbc4";
functions = "82aaff";
keywords = "c792ea";
tags = "f07178";
strings = "c3e88d";
operators = "89ddff";
attributes = "ffcb6b";
numbers = "f78c6c";
parameters = "f78c6c";
background0 = "390000";
background1 = "330000";
};
}

View file

@ -0,0 +1,20 @@
{
colours = {
nord0 = "2e3440";
nord1 = "3b4252";
nord2 = "434c5e";
nord3 = "4c566a";
nord4 = "d8dee9";
nord5 = "e5e9f0";
nord6 = "eceff4";
nord7 = "8fbcbb";
nord8 = "88c0d0";
nord9 = "81a1c1";
nord10 = "5e81ac";
nord11 = "bf616a";
nord12 = "d08770";
nord13 = "ebcb8b";
nord14 = "a3be8c";
nord15 = "b48ead";
};
}

View file

@ -0,0 +1,12 @@
{
colours = {
background = "282c34";
red = "e06c75";
green = "98c379";
yellow = "e5c07b";
blue = "61afef";
pink = "c678dd";
teal = "56b6c2";
gray = "abb2bf";
};
}

View file

@ -0,0 +1,19 @@
{
colours = {
base = "191724";
surface = "1f1d2e";
overlay = "26233a";
muted = "6e6a86";
subtle = "908caa";
text = "e0def4";
love = "eb6f92";
gold = "f6c177";
rose = "ebbcba";
pine = "31748f";
foam = "9ccfd8";
iris = "c4a7e7";
highlight0 = "21202e";
highlight1 = "403d52";
highlight2 = "524f67";
};
}

View file

@ -0,0 +1,19 @@
{
colours = {
base = "faf4ed";
surface = "fffaf3";
overlay = "f2e9e1";
muted = "9893a5";
subtle = "797593";
text = "575279";
love = "b4637a";
gold = "ea9d34";
rose = "d7827e";
pine = "286983";
foam = "56949f";
iris = "907aa9";
highlight0 = "f4ede8";
highlight1 = "dfdad9";
highlight2 = "cecacd";
};
}

View file

@ -0,0 +1,19 @@
{
colours = {
base = "232136";
surface = "2a273f";
overlay = "393552";
muted = "6e6a86";
subtle = "908caa";
text = "e0def4";
love = "eb6f92";
gold = "f6c177";
rose = "ea9a97";
pine = "3e8fb0";
foam = "9ccfd8";
iris = "c4a7e7";
highlight0 = "2a283e";
highlight1 = "44415a";
highlight2 = "56526e";
};
}

View file

@ -0,0 +1,16 @@
{
colours = {
yellow = "b58900";
orange = "cb4b16";
red = "dc322f";
magenta = "d33682";
violet = "6c71c4";
blue = "268bd2";
cyan = "2aa198";
green = "859900";
base00 = "657b83";
base01 = "586e75";
base02 = "073642";
base03 = "002b36";
};
}

View file

@ -0,0 +1,16 @@
{
colours = {
yellow = "b58900";
orange = "cb4b16";
red = "dc322f";
magenta = "d33682";
violet = "6c71c4";
blue = "268bd2";
cyan = "2aa198";
green = "859900";
base0 = "839496";
base1 = "93a1a1";
base2 = "eee8d5";
base3 = "fdf6e3";
};
}

View file

@ -0,0 +1,21 @@
{
colours = {
keyword = "#8c4351";
integer = "#965027";
parameter0 = "#8f5e15";
parameter1 = "#634f30";
string0 = "#385f0d";
string1 = "#33635c";
property = "#33635c";
builtin = "#006c86";
object = "#0f4b6e";
function = "#2959aa";
control = "#5a3e8e";
variable = "#343b58";
markdown = "#40434f";
comments = "#6c6e75";
terminal = "#343B58";
foreground = "#343b58";
background = "#e6e7ed";
};
}

View file

@ -0,0 +1,21 @@
{
colours = {
keyword = "#f7768e";
integer = "#ff9e64";
parameter0 = "#e0af68";
parameter1 = "#cfc9c2";
string0 = "#9ece6a";
property = "#73daca";
string1 = "#b4f9f8";
builtin = "#2ac3de";
object = "#7dcfff";
function = "#7aa2f7";
control = "#bb9af7";
variable = "#c0caf5";
markdown = "#9aa5ce";
comments = "#565f89";
terminal = "#414868";
foreground = "#a9b1d6";
background = "#1a1b26";
};
}

View file

@ -0,0 +1,21 @@
{
colours = {
keyword = "#f7768e";
integer = "#ff9e64";
parameter0 = "#e0af68";
parameter1 = "#cfc9c2";
string0 = "#9ece6a";
property = "#73daca";
string1 = "#b4f9f8";
builtin = "#2ac3de";
object = "#7dcfff";
function = "#7aa2f7";
control = "#bb9af7";
variable = "#c0caf5";
markdown = "#9aa5ce";
comments = "#565f89";
terminal = "#414868";
foreground = "#a9b1d6";
background = "#24283b";
};
}

96
flake.lock generated
View file

@ -95,11 +95,11 @@
},
"crane_3": {
"locked": {
"lastModified": 1736566337,
"narHash": "sha256-SC0eDcZPqISVt6R0UfGPyQLrI0+BppjjtQ3wcSlk0oI=",
"lastModified": 1734324364,
"narHash": "sha256-omYTR59TdH0AumP1cfh49fBnWZ52HjfdNfaLzCMZBx0=",
"owner": "ipetkov",
"repo": "crane",
"rev": "9172acc1ee6c7e1cbafc3044ff850c568c75a5a3",
"rev": "60d7623f1320470bf2fdb92fd2dca1e9a27b98ce",
"type": "github"
},
"original": {
@ -526,11 +526,11 @@
"zig": "zig"
},
"locked": {
"lastModified": 1736566108,
"narHash": "sha256-r+FXWU/hfgO3lAHYs9Q03iCShnC42mZd1pnmIIp8Z9k=",
"lastModified": 1736715745,
"narHash": "sha256-JGvxWgyrZqo86/8LMJbiu/MlB0I+rEzlP+Kcp1QMpbY=",
"owner": "ghostty-org",
"repo": "ghostty",
"rev": "918ccdba5cc65ccd1fb48a54c71306d869299441",
"rev": "a2445359c40ba66f36157359c0ae92509b7f005d",
"type": "github"
},
"original": {
@ -636,11 +636,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1736521384,
"narHash": "sha256-9chSfi9SRfrq757BGmzgm7DgPD3T3CPHNV3QG2otkdg=",
"lastModified": 1736696419,
"narHash": "sha256-OzLcJr68Ry0C6WRPLvMTHiEnySbzKqlmwie9HiOVQJA=",
"owner": "helix-editor",
"repo": "helix",
"rev": "9721144e03a6c4e221c86408d34ce929972a36a5",
"rev": "e01775a6677df12a94e99938b52771974af7c30c",
"type": "github"
},
"original": {
@ -824,11 +824,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1736542519,
"narHash": "sha256-gGxZNtLLqDPtXB5OZbEltfLW5ZzB6zXGobcuKPt02lg=",
"lastModified": 1736701836,
"narHash": "sha256-K6bxd1ZbIQKcF1USNuupv+bsEk5GyidGS/zcTUTgWt8=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "cef09fbfe6624d2133d81be863bd48bcfc5939d3",
"rev": "a6b263713a2b862ed41362082e2147e081934077",
"type": "github"
},
"original": {
@ -990,11 +990,11 @@
"systems": "systems_7"
},
"locked": {
"lastModified": 1736514927,
"narHash": "sha256-Xd+GIAy8cHkCyFbmtJ/E02fSBq18JgVggc1r5Ox1b20=",
"lastModified": 1736702298,
"narHash": "sha256-1sjfbzsJo37H9KqSp6kJUgTlzKEGiLPMF8k6IGo2D2Y=",
"owner": "hyprwm",
"repo": "hyprlock",
"rev": "a5e346783ff0e65b1bf23e0eb9ae473dd6ab48c0",
"rev": "4f964371ccbea65331ee151c4f87d793cb7ac110",
"type": "github"
},
"original": {
@ -1175,11 +1175,11 @@
"systems": "systems_9"
},
"locked": {
"lastModified": 1736460301,
"narHash": "sha256-NLx7zV59MVlIL/CiTq0mC0zrEUqVLqVEcKRKqYEo6Qo=",
"lastModified": 1736717676,
"narHash": "sha256-4vHKIwDWEmIRzoSnjv0WigZfr+zC5Xbu44vtluqK5ts=",
"owner": "ngi-nix",
"repo": "ngipkgs",
"rev": "f29b81759789e092bdd64273c1edd7dd25eb12b3",
"rev": "6105761a92b69dd6322361cfc80e36a9a7a5c002",
"type": "github"
},
"original": {
@ -1195,11 +1195,11 @@
"nixpkgs-stable": "nixpkgs-stable_3"
},
"locked": {
"lastModified": 1736577408,
"narHash": "sha256-h6hi94y9bTl9DQV4keGpYAfJhnH50rxxEdQlGL7QENw=",
"lastModified": 1736712287,
"narHash": "sha256-0T/2niVZlaNYoc5RhDaIVDp5jOZxQofVc/Uv03E5vGA=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "a934c861065b6b1aca9a859c45631336e0e8560c",
"rev": "62b6421304f00c37b5b794c917214c0212d6352d",
"type": "github"
},
"original": {
@ -1210,11 +1210,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1736429638,
"narHash": "sha256-dDWqQqSgMQXw5eFtcyoVijv7HbYJZOIo+jWQdJtsxn4=",
"lastModified": 1736657626,
"narHash": "sha256-FWlPMUzp0lkQBdhKlPqtQdqmp+/C+1MBiEytaYfrCTY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f81eabd5dd7c9213516fa2d3fc1d108a751340d4",
"rev": "2f9e2f85cb14a46410a1399aa9ea7ecf433e422e",
"type": "github"
},
"original": {
@ -1242,11 +1242,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1736200483,
"narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=",
"lastModified": 1736549401,
"narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751",
"rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899",
"type": "github"
},
"original": {
@ -1258,11 +1258,11 @@
},
"nixpkgs-stable_3": {
"locked": {
"lastModified": 1736200483,
"narHash": "sha256-JO+lFN2HsCwSLMUWXHeOad6QUxOuwe9UOAF/iSl1J4I=",
"lastModified": 1736549401,
"narHash": "sha256-ibkQrMHxF/7TqAYcQE+tOnIsSEzXmMegzyBWza6uHKM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3f0a8ac25fb674611b98089ca3a5dd6480175751",
"rev": "1dab772dd4a68a7bba5d9460685547ff8e17d899",
"type": "github"
},
"original": {
@ -1306,11 +1306,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1736344531,
"narHash": "sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc+c2c=",
"lastModified": 1736523798,
"narHash": "sha256-Xb8mke6UCYjge9kPR9o4P1nVrhk7QBbKv3xQ9cj7h2s=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "bffc22eb12172e6db3c5dde9e3e5628f8e3e7912",
"rev": "130595eba61081acde9001f43de3248d8888ac4a",
"type": "github"
},
"original": {
@ -1345,11 +1345,11 @@
"treefmt-nix": "treefmt-nix_2"
},
"locked": {
"lastModified": 1736580656,
"narHash": "sha256-WFhwR7SU2Q0DzAXLsutW/9c9zwH9rgz6SWIQcOpkFfc=",
"lastModified": 1736719214,
"narHash": "sha256-amRlBGtXZ9qg4YQlBo97OWKOVEBiTTh2XBytLayUeIk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "e5a302deaa59a4c8361c61b1a1db96b559946140",
"rev": "20c9e76bb42cd03659957df126e5a770a8ef9a51",
"type": "github"
},
"original": {
@ -1563,11 +1563,11 @@
]
},
"locked": {
"lastModified": 1736700680,
"narHash": "sha256-9gmWIb8xsycWHEYpd2SiVIAZnUULX6Y+IMMZBcDUCQU=",
"lastModified": 1734316514,
"narHash": "sha256-0aLx44yMblcOGpfFXKCzp2GhU5JaE6OTvdU+JYrXiUc=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "5d1865c0da63b4c949f383d982b6b43519946e8f",
"rev": "83ee8ff74d6294a7657320f16814754c4594127b",
"type": "github"
},
"original": {
@ -1607,11 +1607,11 @@
]
},
"locked": {
"lastModified": 1736203741,
"narHash": "sha256-eSjkBwBdQk+TZWFlLbclF2rAh4JxbGg8az4w/Lfe7f4=",
"lastModified": 1736515725,
"narHash": "sha256-4P99yL8vGehwzytkpP87eklBePt6aqeEC5JFsIzhfUs=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "c9c88f08e3ee495e888b8d7c8624a0b2519cb773",
"rev": "f214c1b76c347a4e9c8fb68c73d4293a6820d125",
"type": "github"
},
"original": {
@ -1871,11 +1871,11 @@
]
},
"locked": {
"lastModified": 1736498040,
"narHash": "sha256-fen7o+m7nVlRc1YEhxdWXZTZvcTYEy078nrccTulb7w=",
"lastModified": 1736677965,
"narHash": "sha256-vj4NpvjjW5cUBYJc9AUbH8D8LIkoSwQyKJ+02tHKAAU=",
"owner": "Alexays",
"repo": "Waybar",
"rev": "369c81d6f29e46287a961e8ef26dbf349021d4fb",
"rev": "a4241d700823cbee9e717c90a8408e2dfc977b45",
"type": "github"
},
"original": {
@ -1977,11 +1977,11 @@
"rust-overlay": "rust-overlay_4"
},
"locked": {
"lastModified": 1736689464,
"narHash": "sha256-6XTiX+xlqXyWEwOIMV8ALakU2V74/IU1Dv1D8+3xMT0=",
"lastModified": 1736716936,
"narHash": "sha256-6ZoUYcbuvY3I7n2++wR6tXTiyURPrY+YFLNDEjK3Tzk=",
"owner": "zed-industries",
"repo": "zed",
"rev": "fb650444846a2e08a97ab2ddbc9ea541ce263904",
"rev": "4c50201036688797cece96ae43fe56dcf9ac8e90",
"type": "github"
},
"original": {

View file

@ -120,7 +120,9 @@ in {
imports = builtins.attrValues {
inherit
(modules)
neovim
vscode
zed
;
};
};

View file

@ -1,44 +1,44 @@
{flake, ...}: let
inherit
(flake.config.aesthetics.themes.theme)
colors
(flake.config.aesthetics.themes.schemes.catppuccin-macchiato)
colours
;
in {
colors = {
tableHeaderColor = colors.rosewater;
allCpuColor = colors.rosewater;
avgCpuColor = colors.maroon;
tableHeaderColor = colours.rosewater;
allCpuColor = colours.rosewater;
avgCpuColor = colours.maroon;
cpuCoreColors = [
colors.sapphire
colors.peach
colors.yellow
colors.green
colors.sky
colors.mauve
colours.sapphire
colours.peach
colours.yellow
colours.green
colours.sky
colours.mauve
];
ramColor = colors.green;
swapColor = colors.peach;
rxColor = colors.green;
txColor = colors.red;
widgetTitleColor = colors.flamingo;
borderColor = colors.surface2;
highlightedBorderColor = colors.pink;
textColor = colors.text;
graphColor = colors.subtext0;
cursorColor = colors.pink;
selectedTextColor = colors.crust;
selectedBgColor = colors.mauve;
highBatteryColor = colors.green;
mediumBatteryColor = colors.yellow;
lowBatteryColor = colors.red;
ramColor = colours.green;
swapColor = colours.peach;
rxColor = colours.green;
txColor = colours.red;
widgetTitleColor = colours.flamingo;
borderColor = colours.surface2;
highlightedBorderColor = colours.pink;
textColor = colours.text;
graphColor = colours.subtext0;
cursorColor = colours.pink;
selectedTextColor = colours.crust;
selectedBgColor = colours.mauve;
highBatteryColor = colours.green;
mediumBatteryColor = colours.yellow;
lowBatteryColor = colours.red;
gpuCoreColors = [
colors.sky
colors.mauve
colors.red
colors.peach
colors.yellow
colors.green
colours.sky
colours.mauve
colours.red
colours.peach
colours.yellow
colours.green
];
arcColor = colors.sky;
arcColor = colours.sky;
};
}

View file

@ -1,19 +1,22 @@
{flake, ...}: let
inherit
(flake.config.aesthetics.themes.theme)
colors
(flake.config.aesthetics.themes.schemes.catppuccin-macchiato)
colours
;
inherit
(flake.config.aesthetics.themes)
font
;
makeColor = c: "#" + c;
in {
global = {
font = "${font} 10";
background = makeColor colors.base;
background = makeColor colours.base;
corner_radius = 10;
fade_in_duration = 1000;
foreground = makeColor colors.text;
foreground = makeColor colours.text;
frame = 10000;
frame_color = makeColor colors.mauve;
frame_color = makeColor colours.mauve;
frame_width = 1;
icon_corner_radius = 10;
monitor = 1;
@ -25,7 +28,7 @@ in {
};
urgency_critical = {
frame_color = makeColor colors.peach;
frame_color = makeColor colours.peach;
timeout = 0;
};
}

View file

@ -3,7 +3,10 @@
pkgs,
...
}: let
inherit (flake.config.aesthetics.themes.theme) font;
inherit
(flake.config.aesthetics.themes)
font
;
in {
confirm-close-surface = false;
window-decoration = false;

View file

@ -1,29 +1,32 @@
{flake, ...}: let
inherit (flake.config.aesthetics.themes.theme) colors;
inherit
(flake.config.aesthetics.themes.schemes.catppuccin-macchiato)
colours
;
in {
catppuccin-macchiato = {
background = "${colors.base}";
cursor-color = "${colors.rosewater}";
foreground = "${colors.text}";
background = "${colours.base}";
cursor-color = "${colours.rosewater}";
foreground = "${colours.text}";
palette = [
"0=${colors.surface1}"
"1=${colors.red}"
"2=${colors.green}"
"3=${colors.yellow}"
"4=${colors.blue}"
"5=${colors.pink}"
"6=${colors.teal}"
"7=${colors.subtext0}"
"8=${colors.surface2}"
"9=${colors.red}"
"10=${colors.green}"
"11=${colors.yellow}"
"12=${colors.blue}"
"13=${colors.pink}"
"14=${colors.teal}"
"15=${colors.subtext1}"
"0=${colours.surface1}"
"1=${colours.red}"
"2=${colours.green}"
"3=${colours.yellow}"
"4=${colours.blue}"
"5=${colours.pink}"
"6=${colours.teal}"
"7=${colours.subtext0}"
"8=${colours.surface2}"
"9=${colours.red}"
"10=${colours.green}"
"11=${colours.yellow}"
"12=${colours.blue}"
"13=${colours.pink}"
"14=${colours.teal}"
"15=${colours.subtext1}"
];
selection-background = "${colors.surface2}";
selection-foreground = "${colors.text}";
selection-background = "${colours.surface2}";
selection-foreground = "${colours.text}";
};
}

View file

@ -0,0 +1,5 @@
{
extraConfig = {
gtk-application-prefer-dark-theme = true;
};
}

View file

@ -20,9 +20,11 @@
pkgs
;
};
gtk3Path = import (configPath + /gtk3.nix);
in {
gtk = {
enable = true;
gtk3 = gtk3Path;
cursorTheme = cursorThemePath;
iconTheme = iconThemePath;
theme = themePath;

View file

@ -2,6 +2,7 @@
home.packages = builtins.attrValues {
inherit
(pkgs)
udiskie
alsa-utils
wl-clipboard
swaylock

3
home/modules/neovim.nix Executable file
View file

@ -0,0 +1,3 @@
{
programs.neovim.enable = true;
}

View file

@ -4,8 +4,8 @@
...
}: let
inherit
(flake.config.aesthetics.themes.theme)
colors
(flake.config.aesthetics.themes.schemes.catppuccin-macchiato)
colours
;
makeColor = c:
"#"
@ -18,7 +18,7 @@
+ " bold";
surround = fg: text:
"[](fg:"
+ makeColor colors.base
+ makeColor colours.base
+ " bg:"
+ fg
+ ")"
@ -36,45 +36,45 @@ in {
surround (makeColor bg) ("["
+ c
+ "]("
+ makeStyle (makeColor bg) (makeColor colors.crust)
+ makeStyle (makeColor bg) (makeColor colours.crust)
+ ")");
in {
error_symbol = makeChar colors.maroon "";
error_symbol = makeChar colours.maroon "";
format = "$symbol";
success_symbol = makeChar colors.teal "λ";
success_symbol = makeChar colours.teal "λ";
};
cmd_duration = {
format = surround (makeColor colors.mauve) "[ $duration]($style)";
format = surround (makeColor colours.mauve) "[ $duration]($style)";
min_time = 0;
show_milliseconds = true;
style = makeStyle (makeColor colors.mauve) (makeColor colors.crust);
style = makeStyle (makeColor colours.mauve) (makeColor colours.crust);
};
directory = {
format = surround (makeColor colors.blue) "[󰉋 $path]($style)[$read_only]($read_only_style)";
format = surround (makeColor colours.blue) "[󰉋 $path]($style)[$read_only]($read_only_style)";
read_only = " ";
read_only_style = makeStyle (makeColor colors.blue) (makeColor colors.crust);
style = makeStyle (makeColor colors.blue) (makeColor colors.crust);
read_only_style = makeStyle (makeColor colours.blue) (makeColor colours.crust);
style = makeStyle (makeColor colours.blue) (makeColor colours.crust);
truncation_length = 1;
truncate_to_repo = false;
};
git_branch = {
format = surround (makeColor colors.peach) "[$symbol $branch]($style)";
style = makeStyle (makeColor colors.peach) (makeColor colors.crust);
format = surround (makeColor colours.peach) "[$symbol $branch]($style)";
style = makeStyle (makeColor colours.peach) (makeColor colours.crust);
symbol = "";
};
git_status = {
format = "[ \\[$all_status$ahead_behind\\]]($style)";
style = makeStyle (makeColor colors.yellow) (makeColor colors.crust);
style = makeStyle (makeColor colours.yellow) (makeColor colours.crust);
};
hostname = {
format = surround (makeColor colors.sapphire) "[$ssh_symbol$hostname]($style)";
format = surround (makeColor colours.sapphire) "[$ssh_symbol$hostname]($style)";
ssh_symbol = "󰖟 ";
style = makeStyle (makeColor colors.sapphire) (makeColor colors.crust);
style = makeStyle (makeColor colours.sapphire) (makeColor colours.crust);
};
pijul_channel = {
disabled = false;
format = surround (makeColor colors.peach) "[$symbol $channel]($style)";
style = makeStyle (makeColor colors.peach) (makeColor colors.crust);
format = surround (makeColor colours.peach) "[$symbol $channel]($style)";
style = makeStyle (makeColor colours.peach) (makeColor colours.crust);
symbol = "";
};
format = lib.concatStrings [

View file

@ -1,7 +1,10 @@
{flake, ...}: let
inherit
(flake.config.aesthetics.themes.theme)
colors
(flake.config.aesthetics.themes.schemes.catppuccin-macchiato)
colours
;
inherit
(flake.config.aesthetics.themes)
font
;
in {
@ -11,36 +14,36 @@ in {
indicator-thickness = 20;
show-failed-attempts = true;
bs-hl-color = colors.red;
color = colors.base;
key-hl-color = colors.mauve;
bs-hl-color = colours.red;
color = colours.base;
key-hl-color = colours.mauve;
caps-lock-bs-hl-color = colors.red;
caps-lock-key-hl-color = colors.mauve;
caps-lock-bs-hl-color = colours.red;
caps-lock-key-hl-color = colours.mauve;
inside-color = colors.base;
inside-clear-color = colors.base;
inside-caps-lock-color = colors.base;
inside-ver-color = colors.base;
inside-wrong-color = colors.base;
inside-color = colours.base;
inside-clear-color = colours.base;
inside-caps-lock-color = colours.base;
inside-ver-color = colours.base;
inside-wrong-color = colours.base;
line-color = colors.base;
line-clear-color = colors.base;
line-caps-lock-color = colors.base;
line-ver-color = colors.base;
line-wrong-color = colors.base;
line-color = colours.base;
line-clear-color = colours.base;
line-caps-lock-color = colours.base;
line-ver-color = colours.base;
line-wrong-color = colours.base;
ring-color = colors.crust;
ring-clear-color = colors.crust;
ring-caps-lock-color = colors.crust;
ring-ver-color = colors.crust;
ring-wrong-color = colors.crust;
ring-color = colours.crust;
ring-clear-color = colours.crust;
ring-caps-lock-color = colours.crust;
ring-ver-color = colours.crust;
ring-wrong-color = colours.crust;
separator-color = "00000000";
text-color = colors.text;
text-clear-color = colors.text;
text-caps-lock-color = colors.text;
text-ver-color = colors.text;
text-wrong-color = colors.text;
text-color = colours.text;
text-clear-color = colours.text;
text-caps-lock-color = colours.text;
text-ver-color = colours.text;
text-wrong-color = colours.text;
}

View file

@ -5,7 +5,7 @@
...
}: let
inherit
(flake.config.aesthetics.themes.theme)
(flake.config.aesthetics.themes)
font
;
in {

View file

@ -1,17 +1,32 @@
{flake, ...}: let
inherit
(flake.config.aesthetics.themes.theme)
font
colors
(flake.config.aesthetics.themes.schemes.catppuccin-macchiato)
colours
;
inherit
(flake.config.aesthetics.themes)
currentTheme
currentColours
schemes
font
;
cc = currentColours;
theme = colour: schemes.${currentTheme}.colours.${colour};
custom = {
font = font;
font_size = "12px";
font_weight = "bold";
text_color = colors.mauve;
secondary_accent = colors.lavender;
tertiary_accent = colors.sky;
background = colors.base;
text_color = theme cc.warmAccent2;
secondary_accent = theme cc.coolAccent4;
tertiary_accent = theme cc.coolAccent1;
button_color = theme cc.overlay2;
background_1 = colours.base;
background_2 = colours.crust;
background_3 = colours.surface2;
opacityBg = "0.90";
opacityBt = "1";
};
@ -24,11 +39,11 @@ in ''
}
window#waybar {
background: #${colors.crust};
color: #${colors.surface2};
background: #${custom.background_2};
color: #${custom.background_3};
border: 2px solid;
border-radius: 30px;
border-color: #${colors.mauve};
border-color: #${custom.text_color};
min-height: 100px;
opacity: ${custom.opacityBg};
}
@ -39,20 +54,20 @@ in ''
margin-bottom: 2px;
}
#workspaces button {
color: #${colors.overlay2};
color: #${custom.button_color};
padding: 5px;
opacity: ${custom.opacityBt};
}
#workspaces button.empty {
color: #${colors.surface2};
color: #${custom.background_3};
}
#workspaces button.active {
color: #${colors.mauve};
color: #${custom.text_color};
}
#tray, #pulseaudio, #privacy, #cpu, #memory, #disk, #clock {
font-size: ${custom.font_size};
color: #${colors.mauve};
color: #${custom.text_color};
padding-right: 10px;
}
@ -79,14 +94,14 @@ in ''
#custom-launcher {
font-size: 20px;
color: #${colors.mauve};
color: #${custom.text_color};
font-weight: ${custom.font_weight};
padding-left: 10px;
}
#custom-weather {
font-size: 14px;
color: #${colors.mauve};
color: #${custom.text_color};
font-weight: ${custom.font_weight};
}
''

View file

@ -1,5 +1,8 @@
{flake, ...}: let
inherit (flake.config.aesthetics.themes.theme) font;
inherit
(flake.config.aesthetics.themes)
font
;
in ''
return {
color_scheme = "Catppuccin Macchiato",

View file

@ -0,0 +1,15 @@
[
"catppuccin"
"catppuccin-blur"
"material-dark"
"rose-pine-theme"
"material-theme"
"just"
"elm"
"haskell"
"nix"
"typst"
"nu"
"toml"
"xml"
]

View file

@ -0,0 +1,11 @@
{pkgs, ...}:
builtins.attrValues {
inherit
(pkgs)
nil
nixfmt-rfc-style
nixd
wl-clipboard-rs
xsel
;
}

View file

@ -1 +0,0 @@
{}

View file

@ -1 +0,0 @@
{}

View file

@ -0,0 +1,9 @@
{
enabled = true;
version = "2";
default_open_ai_model = null;
default_model = {
provider = "zed.dev";
model = "claude-3-5-sonnet-latest";
};
}

View file

@ -0,0 +1,7 @@
{
enabled = true;
autoFetch = true;
autoFetchInterval = 300;
git_status = true;
git_gutter = "tracked_files";
}

View file

@ -0,0 +1,38 @@
{flake, ...}: let
inherit
(flake.config.aesthetics.themes)
font
;
in {
ui_font_family = font;
buffer_font_family = font;
hour_format = "hour12";
vim_mode = false;
show_whitespaces = "none";
ui_font_size = 14;
buffer_font_size = 14;
tab_size = 2;
cursor_blink = true;
theme = "Rosé Pine";
show_copilot_suggestions = true;
bracket_pairing = "always";
relative_line_numbers = true;
tabs = {
file_icons = true;
git_status = true;
};
inlay_hints = {
enabled = true;
typeHints = true;
parameterHints = true;
chainingHints = true;
};
project_panel = {
file_icons = true;
folder_icons = true;
indent_size = 15;
};
indent_guides = {
enabled = true;
};
}

View file

@ -0,0 +1,38 @@
{
"Elixir" = {
language_servers = [
"!lexical"
"elixir-ls"
"!next-ls"
];
format_on_save = {
external = {
command = "mix";
arguments = [
"format"
"--stdin-filename"
"{buffer_path}"
"-"
];
};
};
};
"HEEX" = {
language_servers = [
"!lexical"
"elixir-ls"
"!next-ls"
];
format_on_save = {
external = {
command = "mix";
arguments = [
"format"
"--stdin-filename"
"{buffer_path}"
"-"
];
};
};
};
}

View file

@ -0,0 +1,38 @@
{
rust-analyzer = {
binary = {
path_lookup = true;
};
};
elm = {
binary = {
path_lookup = true;
};
};
haskell = {
path_lookup = true;
};
nix = {
binary = {
path_lookup = true;
};
};
typst = {
binary = {
path_lookup = true;
};
};
elixir-ls = {
binary = {
path_lookup = true;
};
settings = {
dialyzerEnabled = true;
};
};
}

View file

@ -0,0 +1,38 @@
{flake, ...}: let
inherit
(flake.config.aesthetics.themes)
font
;
in {
alternate_scroll = "off";
blinking = "off";
copy_on_select = true;
dock = "bottom";
detect_venv = {
on = {
directories = [
".env"
"env"
".venv"
"venv"
];
activate_script = "default";
};
};
env = {
TERM = "ghostty";
};
font_family = font;
font_features = null;
font_size = 12;
line_height = "comfortable";
option_as_meta = false;
button = false;
shell = "system";
toolbar = {
title = false;
};
working_directory = "current_project_directory";
}

View file

@ -0,0 +1,41 @@
{
flake,
lib,
pkgs,
...
}: let
configPath = ./config;
assistantPath = import (configPath + /assistant);
interfacePath = import (configPath + /interface) {
inherit
flake
;
};
languagesPath = import (configPath + /languages);
lspPath = import (configPath + /lsp);
terminalPath = import (configPath + /terminal) {
inherit
flake
;
};
gitPath = import (configPath + /git);
in
{
assistant = assistantPath;
git = gitPath;
languages = languagesPath;
lsp = lspPath;
terminal = terminalPath;
node = {
path = lib.getExe pkgs.nodejs;
npm_path = lib.getExe' pkgs.nodejs "npm";
};
auto_update = false;
autosave_after_delay = 20;
load_direnv = "shell_hook";
base_keymap = "VSCode";
restore_on_startup = "last_session";
}
// interfacePath

23
home/modules/zed/default.nix Normal file → Executable file
View file

@ -1,17 +1,30 @@
{
flake,
lib,
pkgs,
...
}: let
configPath = ./config;
extensionsPath = import (configPath + /extensions.nix);
userKeymapsPath = import (configPath + /userKeymaps.nix);
userSettingsPath = import (configPath + /userSettings.nix);
packagePath = flake.inputs.zed.packages.${pkgs.system}.zed;
extensionsPath = import (configPath + /extensions);
userKeymapsPath = import (configPath + /userKeymaps);
userSettingsPath = import (configPath + /userSettings) {
inherit
flake
lib
pkgs
;
};
extraPackagesPath = import (configPath + /extraPackages) {
inherit
pkgs
;
};
# packagePath = flake.inputs.zed.packages.${pkgs.system}.default;
in {
programs.zed-editor = {
enable = true;
package = packagePath;
# package = packagePath;
extraPackages = extraPackagesPath;
extensions = extensionsPath;
userKeymaps = userKeymapsPath;
userSettings = userSettingsPath;

View file

@ -4,7 +4,7 @@
...
}: let
inherit
(flake.config.aesthetics.themes.theme)
(flake.config.aesthetics.themes)
font
;
in {
@ -31,6 +31,7 @@ in {
inherit
(pkgs)
noto-fonts-color-emoji
dosis
;
inherit
(pkgs.nerd-fonts)

View file

@ -4,7 +4,10 @@
lib,
...
}: let
inherit (flake.config.aesthetics.themes.theme) font;
inherit
(flake.config.aesthetics.themes)
font
;
in {
programs.regreet = {
enable = true;

View file

@ -2,7 +2,10 @@
services = {
xserver = {
enable = true;
xkb.layout = "us";
xkb = {
layout = "us";
# variant = "colemak_dh"
};
};
libinput = {
enable = true;

View file

@ -12,6 +12,7 @@
alejandra
just
nil
nixd
sops
ssh-to-age
;