summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nix/default.nix179
-rw-r--r--nix/themes/catppuccin/frappe.nix53
-rw-r--r--nix/themes/catppuccin/latte.nix53
-rw-r--r--nix/themes/catppuccin/macchiato.nix53
-rw-r--r--nix/themes/catppuccin/mocha.nix53
-rw-r--r--nix/themes/default.nix2
-rw-r--r--nix/themes/tricolor.nix22
-rw-r--r--nix/themes/tricolors.nix40
-rw-r--r--options.nix10
9 files changed, 301 insertions, 164 deletions
diff --git a/nix/default.nix b/nix/default.nix
index d6e36ec..a5e8f43 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -23,10 +23,9 @@ let
};
};
- # base16 theme color options
- # https://github.com/chriskempson/base16/blob/main/styling.md
+ # theme color options
- base16Opts = self: {
+ colorOpts = self: {
options = {
name = mkOption {
@@ -39,90 +38,140 @@ let
description = "Author of the theme";
};
- base00 = mkOption {
+ fg = mkOption {
type = types.str;
- description = "Default Background.";
+ description = "Text color";
};
- base01 = mkOption {
+ bg = mkOption {
type = types.str;
- description = "Lighter Background (Used for status bars, line number and folding marks).";
+ description = "Background color";
};
- base02 = mkOption {
- type = types.str;
- description = "Selection Background.";
+ surface = {
+ fg = mkOption {
+ type = types.str;
+ description = "Surface text color";
+ };
+ bg = mkOption {
+ type = types.str;
+ description = "Surface background color";
+ };
};
- base03 = mkOption {
- type = types.str;
- description = "Comments, Invisibles, Line Highlighting.";
+ hover = {
+ fg = mkOption {
+ type = types.str;
+ description = "Hover text color";
+ };
+ bg = mkOption {
+ type = types.str;
+ description = "Hover background color";
+ };
};
- base04 = mkOption {
+ primary = mkOption {
type = types.str;
- description = "Dark Foreground (Used for status bars).";
+ description = "Primary accent color";
};
- base05 = mkOption {
+ success = mkOption {
type = types.str;
- description = "Default Foreground, Caret, Delimiters, Operators.";
+ description = "Success color";
};
- base06 = mkOption {
+ warning = mkOption {
type = types.str;
- description = "Light Foreground (Not often used).";
+ description = "Warning color";
};
- base07 = mkOption {
+ error = mkOption {
type = types.str;
- description = "Light Background (Not often used).";
+ description = "Error color";
};
- base08 = mkOption {
- type = types.str;
- description = "Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted.";
- };
+ normal = {
+ black = mkOption {
+ type = types.str;
+ description = "Terminal normal color";
+ };
- base09 = mkOption {
- type = types.str;
- description = "Integers, Boolean, Constants, XML Attributes, Markup Link Url.";
- };
+ blue = mkOption {
+ type = types.str;
+ description = "Terminal normal color";
+ };
- base0A = mkOption {
- type = types.str;
- description = "Classes, Markup Bold, Search Text Background.";
- };
+ cyan = mkOption {
+ type = types.str;
+ description = "Terminal normal color";
+ };
- base0B = mkOption {
- type = types.str;
- description = "Strings, Inherited Class, Markup Code, Diff Inserted.";
- };
+ green = mkOption {
+ type = types.str;
+ description = "Terminal normal color";
+ };
- base0C = mkOption {
- type = types.str;
- description = "Support, Regular Expressions, Escape Characters, Markup Quotes.";
- };
+ magenta = mkOption {
+ type = types.str;
+ description = "Terminal normal color";
+ };
- base0D = mkOption {
- type = types.str;
- description = "Functions, Methods, Attribute IDs, Headings.";
- };
+ red = mkOption {
+ type = types.str;
+ description = "Terminal normal color";
+ };
- base0E = mkOption {
- type = types.str;
- description = "Keywords, Storage, Selector, Markup Italic, Diff Changed.";
- };
+ white = mkOption {
+ type = types.str;
+ description = "Terminal normal color";
+ };
- base0F = mkOption {
- type = types.str;
- description = "Deprecated, Opening/Closing Embedded Language Tags.";
+ yellow = mkOption {
+ type = types.str;
+ description = "Terminal normal color";
+ };
};
- accent = mkOption {
- type = types.str;
- description = "Accent color.";
- default = config.theme.colors.base0D;
+ bright = {
+ black = mkOption {
+ type = types.str;
+ description = "Terminal bright color";
+ };
+
+ blue = mkOption {
+ type = types.str;
+ description = "Terminal bright color";
+ };
+
+ cyan = mkOption {
+ type = types.str;
+ description = "Terminal bright color";
+ };
+
+ green = mkOption {
+ type = types.str;
+ description = "Terminal bright color";
+ };
+
+ magenta = mkOption {
+ type = types.str;
+ description = "Terminal bright color";
+ };
+
+ red = mkOption {
+ type = types.str;
+ description = "Terminal bright color";
+ };
+
+ white = mkOption {
+ type = types.str;
+ description = "Terminal bright color";
+ };
+
+ yellow = mkOption {
+ type = types.str;
+ description = "Terminal bright color";
+ };
};
};
@@ -190,15 +239,13 @@ in
#
theme = {
colors = mkOption {
- type = with types; (submodule base16Opts);
- description = "Base16 color scheme";
- default = (import ./themes).catppuccin.mocha;
+ type = with types; (submodule colorOpts);
+ description = "color scheme";
};
opacity = mkOption {
type = types.float;
description = "Window opacity.";
- default = 1.0;
};
# theme fonts
@@ -206,31 +253,26 @@ in
size = mkOption {
type = types.int;
description = "Theme primary font size.";
- default = 14;
};
regular = mkOption {
type = types.str;
description = "Regular system font.";
- default = "JetBrains Mono";
};
monospace = mkOption {
type = types.str;
description = "Monospace system font.";
- default = "monospace";
};
header = mkOption {
type = types.str;
description = "Header system font.";
- default = "JetBrains Mono ExtraBold";
};
icon = mkOption {
type = types.str;
description = "Icon system font.";
- default = "Font Awesome 6 Pro";
};
};
@@ -238,43 +280,36 @@ in
borderWidth = mkOption {
type = types.int;
description = "Theme border width";
- default = 3;
};
outerRadius = mkOption {
type = types.int;
description = "Theme outer border radius.";
- default = 5;
};
innerRadius = mkOption {
type = types.int;
description = "Theme inner border radius.";
- default = 2;
};
outerGap = mkOption {
type = types.int;
description = "Theme outer gap/spacing.";
- default = 10;
};
innerGap = mkOption {
type = types.int;
description = "Theme inner gap/spacing.";
- default = 3;
};
wallpaper = mkOption {
type = types.str;
description = "Path to wallpaper image";
- default = "";
};
avatar = mkOption {
type = types.str;
description = "Path to avatar image";
- default = "";
};
};
diff --git a/nix/themes/catppuccin/frappe.nix b/nix/themes/catppuccin/frappe.nix
index 77bae89..a917ba8 100644
--- a/nix/themes/catppuccin/frappe.nix
+++ b/nix/themes/catppuccin/frappe.nix
@@ -1,21 +1,40 @@
-{
+rec {
name = "Catppuccin Frappe";
author = "https://github.com/catppuccin/catppuccin";
- base00 = "303446"; # base
- base01 = "292c3c"; # mantle
- base02 = "414559"; # surface0
- base03 = "51576d"; # surface1
- base04 = "626880"; # surface2
- base05 = "c6d0f5"; # text
- base06 = "f2d5cf"; # rosewater
- base07 = "babbf1"; # lavender
- base08 = "e78284"; # red
- base09 = "ef9f76"; # peach
- base0A = "e5c890"; # yellow
- base0B = "a6d189"; # green
- base0C = "81c8be"; # teal
- base0D = "8caaee"; # blue
- base0E = "ca9ee6"; # mauve
- base0F = "eebebe"; # flamingo
+ fg = "c6d0f5";
+ bg = "303446";
+
+ surface.fg = fg;
+ surface.bg = "414559";
+
+ hover.fg = fg;
+ hover.bg = "737994";
+
+ primary = normal.blue;
+ success = normal.green;
+ warning = normal.yellow;
+ error = normal.red;
+
+ normal = {
+ black = "51576d";
+ red = "e78284";
+ green = "a6d189";
+ yellow = "e5c890";
+ blue = "8caaee";
+ magenta = "f4b8e4";
+ cyan = "81c8be";
+ white = "b5bfe2";
+ };
+
+ bright = {
+ black = "626880";
+ red = "e78284";
+ green = "a6d189";
+ yellow = "e5c890";
+ blue = "8caaee";
+ magenta = "f4b8e4";
+ cyan = "81c8be";
+ white = "a5adce";
+ };
}
diff --git a/nix/themes/catppuccin/latte.nix b/nix/themes/catppuccin/latte.nix
index 476e123..ca0d3d6 100644
--- a/nix/themes/catppuccin/latte.nix
+++ b/nix/themes/catppuccin/latte.nix
@@ -1,21 +1,40 @@
-{
+rec {
name = "Catppuccin Latte";
author = "https://github.com/catppuccin/catppuccin";
- base00 = "eff1f5"; # base
- base01 = "e6e9ef"; # mantle
- base02 = "ccd0da"; # surface0
- base03 = "bcc0cc"; # surface1
- base04 = "acb0be"; # surface2
- base05 = "4c4f69"; # text
- base06 = "dc8a78"; # rosewater
- base07 = "7287fd"; # lavender
- base08 = "d20f39"; # red
- base09 = "fe640b"; # peach
- base0A = "df8e1d"; # yellow
- base0B = "40a02b"; # green
- base0C = "179299"; # teal
- base0D = "1e66f5"; # blue
- base0E = "8839ef"; # mauve
- base0F = "dd7878"; # flamingo
+ fg = "4c4f69";
+ bg = "eff1f5";
+
+ surface.fg = fg;
+ surface.bg = "ccd0da";
+
+ hover.fg = fg;
+ hover.bg = "9ca0b0";
+
+ primary = normal.blue;
+ success = normal.green;
+ warning = normal.yellow;
+ error = normal.red;
+
+ normal = {
+ black = "bcc0cc";
+ red = "d20f39";
+ green = "40a02b";
+ yellow = "df8e1d";
+ blue = "1e66f5";
+ magenta = "ea76cb";
+ cyan = "179299";
+ white = "5c5f77";
+ };
+
+ bright = {
+ black = "acb0be";
+ red = "d20f39";
+ green = "40a02b";
+ yellow = "df8e1d";
+ blue = "1e66f5";
+ magenta = "ea76cb";
+ cyan = "179299";
+ white = "6c6f85";
+ };
}
diff --git a/nix/themes/catppuccin/macchiato.nix b/nix/themes/catppuccin/macchiato.nix
index 1f401be..e069a93 100644
--- a/nix/themes/catppuccin/macchiato.nix
+++ b/nix/themes/catppuccin/macchiato.nix
@@ -1,21 +1,40 @@
-{
+rec {
name = "Catppuccin Macchiato";
author = "https://github.com/catppuccin/catppuccin";
- base00 = "24273a"; # base
- base01 = "1e2030"; # mantle
- base02 = "363a4f"; # surface0
- base03 = "494d64"; # surface1
- base04 = "5b6078"; # surface2
- base05 = "cad3f5"; # text
- base06 = "f4dbd6"; # rosewater
- base07 = "b7bdf8"; # lavender
- base08 = "ed8796"; # red
- base09 = "f5a97f"; # peach
- base0A = "eed49f"; # yellow
- base0B = "a6da95"; # green
- base0C = "8bd5ca"; # teal
- base0D = "8aadf4"; # blue
- base0E = "c6a0f6"; # mauve
- base0F = "f0c6c6"; # flamingo
+ fg = "cad3f5";
+ bg = "1e1e2e";
+
+ surface.fg = fg;
+ surface.bg = "313244";
+
+ hover.fg = fg;
+ hover.bg = "24273a";
+
+ primary = normal.blue;
+ success = normal.green;
+ warning = normal.yellow;
+ error = normal.red;
+
+ normal = {
+ black = "494d64";
+ red = "ed8796";
+ green = "a6da95";
+ yellow = "eed49f";
+ blue = "8aadf4";
+ magenta = "f5bde6";
+ cyan = "8bd5ca";
+ white = "b8c0e0";
+ };
+
+ bright = {
+ black = "5b6078";
+ red = "ed8796";
+ green = "a6da95";
+ yellow = "eed49f";
+ blue = "8aadf4";
+ magenta = "f5bde6";
+ cyan = "8bd5ca";
+ white = "a5adcb";
+ };
}
diff --git a/nix/themes/catppuccin/mocha.nix b/nix/themes/catppuccin/mocha.nix
index aee42b6..84cb6ef 100644
--- a/nix/themes/catppuccin/mocha.nix
+++ b/nix/themes/catppuccin/mocha.nix
@@ -1,21 +1,40 @@
-{
+rec {
name = "Catppuccin Mocha";
author = "https://github.com/catppuccin/catppuccin";
- base00 = "1e1e2e"; # base
- base01 = "181825"; # mantle
- base02 = "313244"; # surface0
- base03 = "45475a"; # surface1
- base04 = "585b70"; # surface2
- base05 = "cdd6f4"; # text
- base06 = "f5e0dc"; # rosewater
- base07 = "b4befe"; # lavender
- base08 = "f38ba8"; # red
- base09 = "fab387"; # peach
- base0A = "f9e2af"; # yellow
- base0B = "a6e3a1"; # green
- base0C = "94e2d5"; # teal
- base0D = "89b4fa"; # blue
- base0E = "cba6f7"; # mauve
- base0F = "f2cdcd"; # flamingo
+ fg = "cdd6f4";
+ bg = "1e1e2e";
+
+ surface.fg = fg;
+ surface.bg = "313244";
+
+ hover.fg = fg;
+ hover.bg = "6c7086";
+
+ primary = normal.blue;
+ success = normal.green;
+ warning = normal.yellow;
+ error = normal.red;
+
+ normal = {
+ black = "45475a";
+ red = "f38ba8";
+ green = "a6e3a1";
+ yellow = "f9e2af";
+ blue = "89b4fa";
+ magenta = "ca9ee6";
+ cyan = "94e2d5";
+ white = "bac2de";
+ };
+
+ bright = {
+ black = "585b70";
+ red = "f38ba8";
+ green = "a6e3a1";
+ yellow = "f9e2af";
+ blue = "89b4fa";
+ magenta = "ca9ee6";
+ cyan = "94e2d5";
+ white = "a6adc8";
+ };
}
diff --git a/nix/themes/default.nix b/nix/themes/default.nix
index b4e191b..6111441 100644
--- a/nix/themes/default.nix
+++ b/nix/themes/default.nix
@@ -1,4 +1,4 @@
{
catppuccin = import ./catppuccin;
- tricolor = import ./tricolor.nix;
+ tricolors = import ./tricolors.nix;
}
diff --git a/nix/themes/tricolor.nix b/nix/themes/tricolor.nix
deleted file mode 100644
index f1d74b8..0000000
--- a/nix/themes/tricolor.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- name = "Tricolor";
- author = "https://trimill.xyz";
-
- base00 = "14171d";
- base01 = "1f242d";
- base02 = "343c4b";
- base03 = "4d4754";
- base04 = "4d4754";
- base05 = "c7c6c3";
- base06 = "ada0a8";
- base07 = "ada0a8";
- base08 = "a63a3a";
- base09 = "f0c767";
- base0A = "7b5687";
- base0B = "3d67a2";
- base0C = "578c7c";
- base0D = "789ebf";
- base0E = "a97fb3";
- base0F = "c7c6c3";
-
-}
diff --git a/nix/themes/tricolors.nix b/nix/themes/tricolors.nix
new file mode 100644
index 0000000..d136fb4
--- /dev/null
+++ b/nix/themes/tricolors.nix
@@ -0,0 +1,40 @@
+rec {
+ name = "tricolors";
+ author = "https://trimill.xyz";
+
+ fg = bright.white;
+ bg = normal.black;
+
+ surface.fg = fg;
+ surface.bg = "2c2b3b";
+
+ hover.fg = fg;
+ hover.bg = bright.black;
+
+ primary = bright.blue;
+ success = bright.green;
+ warning = bright.yellow;
+ error = bright.red;
+
+ normal = {
+ black = "14171d";
+ blue = "3d67a2";
+ cyan = "578c7c";
+ green = "759438";
+ magenta = "7b5687";
+ red = "a63a3a";
+ white = "ada0a8";
+ yellow = "de7e54";
+ };
+
+ bright = {
+ black = "4d4754";
+ blue = "789ebf";
+ cyan = "82bfb3";
+ green = "97bd5e";
+ magenta = "a97fb3";
+ red = "cc5c5c";
+ white = "c7c6c3";
+ yellow = "f0c767";
+ };
+}
diff --git a/options.nix b/options.nix
index 87f74b2..7aa143b 100644
--- a/options.nix
+++ b/options.nix
@@ -5,7 +5,15 @@
# custom theme
theme = rec {
- colors = (import ./nix/themes).catppuccin.mocha;
+ colors = (import ./nix/themes).catppuccin.mocha;
+
+ font = {
+ size = 14;
+ monospace = "monospace";
+ regular = "JetBrains Mono";
+ header = "JetBrains Mono ExtraBold";
+ icon = "Font Awesome 6 Pro";
+ };
borderWidth = 2;
opacity = 0.75;