100 lines
3.9 KiB
Nix
100 lines
3.9 KiB
Nix
|
{ lib, ... }:
|
||
|
|
||
|
let
|
||
|
mkColorOption = description: lib.mkOption {
|
||
|
type = lib.types.str;
|
||
|
inherit description;
|
||
|
};
|
||
|
in
|
||
|
{
|
||
|
# TODO: add enable option
|
||
|
options.local.theme.name = with lib; mkOption {
|
||
|
type = types.str;
|
||
|
default = "catppuccin/frappe";
|
||
|
};
|
||
|
|
||
|
options.local.themes = with lib; mkOption {
|
||
|
default = { };
|
||
|
type = with types; attrsOf (submodule {
|
||
|
options = {
|
||
|
bar = {
|
||
|
background = mkColorOption "Background pane color";
|
||
|
mainText = mkColorOption "Main text color";
|
||
|
inactiveText = mkColorOption "Inactive text color";
|
||
|
};
|
||
|
window = {
|
||
|
activeBorder = mkColorOption "Window active border color";
|
||
|
inactiveBorder = mkColorOption "Window inactive border color";
|
||
|
background = mkColorOption "Terminal background color";
|
||
|
mainText = mkColorOption "Terminal main text color";
|
||
|
cursorText = mkColorOption "Cursor text color";
|
||
|
cursor = mkColorOption "Cursor background color";
|
||
|
cursorVi = mkColorOption "Cursor Vi Mode background color";
|
||
|
searchText = mkColorOption "Search text color";
|
||
|
search = mkColorOption "Search match background";
|
||
|
searchFocused = mkColorOption "Search focused match background";
|
||
|
footerText = mkColorOption "Footer bar text color";
|
||
|
footer = mkColorOption "Footer bar background color";
|
||
|
hintsText = mkColorOption "Keyboard regex hints text color";
|
||
|
hintsStart = mkColorOption "Keyboard regex hints start background color";
|
||
|
hintsEnd = mkColorOption "Keyboard regex hints end background color";
|
||
|
selectionText = mkColorOption "Selection text color";
|
||
|
selection = mkColorOption "Selection background color";
|
||
|
regular = {
|
||
|
color0 = mkColorOption null;
|
||
|
color1 = mkColorOption null;
|
||
|
color2 = mkColorOption null;
|
||
|
color3 = mkColorOption null;
|
||
|
color4 = mkColorOption null;
|
||
|
color5 = mkColorOption null;
|
||
|
color6 = mkColorOption null;
|
||
|
color7 = mkColorOption null;
|
||
|
};
|
||
|
bold = {
|
||
|
color8 = mkColorOption null;
|
||
|
color9 = mkColorOption null;
|
||
|
color10 = mkColorOption null;
|
||
|
color11 = mkColorOption null;
|
||
|
color12 = mkColorOption null;
|
||
|
color13 = mkColorOption null;
|
||
|
color14 = mkColorOption null;
|
||
|
color15 = mkColorOption null;
|
||
|
};
|
||
|
extended = {
|
||
|
color16 = mkColorOption null;
|
||
|
color17 = mkColorOption null;
|
||
|
color18 = mkColorOption null;
|
||
|
color19 = mkColorOption null;
|
||
|
};
|
||
|
};
|
||
|
notification = {
|
||
|
background = mkColorOption "Notification background color";
|
||
|
summary = mkColorOption "Notification summary text color";
|
||
|
body = mkColorOption "Notification body text color";
|
||
|
appName = mkColorOption "Notification app name text color";
|
||
|
lowBorder = mkColorOption "Notification low priority border color";
|
||
|
normalBorder = mkColorOption "Notification normal priority border color";
|
||
|
criticalBorder = mkColorOption "Notification critical priority border color";
|
||
|
pausedBorder = mkColorOption "Notification paused border color";
|
||
|
};
|
||
|
highlights = {
|
||
|
success = mkColorOption "Success color";
|
||
|
warning = mkColorOption "Warnings color";
|
||
|
error = mkColorOption "Errors color";
|
||
|
critical = mkColorOption "Clitical color";
|
||
|
link = mkColorOption "Links color";
|
||
|
tags = mkColorOption "Search results, tags color";
|
||
|
};
|
||
|
syntax = {
|
||
|
markText = mkColorOption "Text color for marked background";
|
||
|
mark1 = mkColorOption "Marked color 1";
|
||
|
mark2 = mkColorOption "Marked color 2";
|
||
|
mark3 = mkColorOption "Marked color 3";
|
||
|
};
|
||
|
};
|
||
|
});
|
||
|
};
|
||
|
|
||
|
imports = [ ./catppuccin/frappe.nix ];
|
||
|
}
|