summaryrefslogtreecommitdiff
path: root/nix/default.nix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--nix/default.nix179
1 files changed, 107 insertions, 72 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 = "";
};
};