diff options
-rw-r--r-- | nix/default.nix | 179 | ||||
-rw-r--r-- | nix/themes/catppuccin/frappe.nix | 53 | ||||
-rw-r--r-- | nix/themes/catppuccin/latte.nix | 53 | ||||
-rw-r--r-- | nix/themes/catppuccin/macchiato.nix | 53 | ||||
-rw-r--r-- | nix/themes/catppuccin/mocha.nix | 53 | ||||
-rw-r--r-- | nix/themes/default.nix | 2 | ||||
-rw-r--r-- | nix/themes/tricolor.nix | 22 | ||||
-rw-r--r-- | nix/themes/tricolors.nix | 40 | ||||
-rw-r--r-- | options.nix | 10 |
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; |