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

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;