226 lines
9.3 KiB
Nix
226 lines
9.3 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
color,
|
|
accent,
|
|
}:
|
|
let
|
|
colors = lib.mapAttrs (_: lib.replaceStrings [ "#" ] [ "rgb:" ]) {
|
|
accent_fg = accent.fg;
|
|
accent_color = accent.color;
|
|
bg_light = color.bg_light;
|
|
bg_dark = color.bg_dark;
|
|
nontxt = color.nontxt;
|
|
orange = color.normal.orange;
|
|
brown = color.normal.brown;
|
|
};
|
|
in
|
|
with colors;
|
|
''
|
|
crosshairs-enable
|
|
|
|
face global crosshairs_line default,${bg_dark}
|
|
face global crosshairs_column default+b
|
|
|
|
# For Code
|
|
face global value magenta
|
|
face global type yellow
|
|
face global variable blue
|
|
face global module ${brown}
|
|
face global function ${orange}
|
|
face global string green
|
|
face global keyword ${accent_color}
|
|
face global operator yellow
|
|
face global attribute cyan
|
|
face global comment ${bg_light}
|
|
face global documentation comment
|
|
face global meta +i@function
|
|
face global builtin blue
|
|
|
|
# For markup
|
|
face global title blue
|
|
face global header cyan
|
|
face global mono green
|
|
face global block magenta
|
|
face global link cyan
|
|
face global bullet cyan
|
|
face global list yellow
|
|
|
|
# builtin faces
|
|
face global Default default,default
|
|
|
|
face global PrimaryCursor ${accent_fg},${accent_color}+fg
|
|
face global PrimaryCursorEol PrimaryCursor
|
|
face global PrimarySelection default,${bg_light}+f
|
|
|
|
face global SecondaryCursor default,default+rfg
|
|
face global SecondaryCursorEol SecondaryCursor
|
|
face global SecondarySelection PrimarySelection
|
|
|
|
face global InactiveCursor ${accent_fg},${bg_light}+fg
|
|
|
|
face global MenuForeground ${accent_fg},${accent_color}
|
|
face global MenuBackground default,${bg_dark}
|
|
face global MenuInfo cyan
|
|
|
|
face global Information default,${bg_dark}
|
|
face global Error default,red+g
|
|
|
|
face global StatusLine %sh{
|
|
printf "rgb:"
|
|
head /dev/urandom |
|
|
base64 |
|
|
rg --text -o "${color.random_range}" |
|
|
head -n 6 |
|
|
sd '\n' ""
|
|
}
|
|
face global StatusLineMode StatusLine
|
|
face global StatusLineInfo StatusLine
|
|
face global StatusLineValue StatusLine
|
|
face global StatusCursor ${accent_fg},${accent_color}
|
|
|
|
face global Prompt yellow,default
|
|
try %{add-highlighter global/ show-matching}
|
|
face global MatchingChar ${accent_color},default+b
|
|
|
|
# Goodies
|
|
try %{add-highlighter global/number-lines number-lines -relative -hlcursor}
|
|
face global LineNumbers ${bg_light},default
|
|
face global LineNumberCursor default,${bg_dark}
|
|
face global LineNumbersWrapped red,default
|
|
|
|
try %{add-highlighter global/ show-whitespaces}
|
|
face global Whitespace ${nontxt},default+f
|
|
face global BufferPadding ${nontxt},default
|
|
## highlight trailing whitespace
|
|
# add-highlighter global/ regex '\h*$' 0:red,red+u
|
|
|
|
face global Reference default+bu
|
|
face global InlayHint ${bg_light}+buif
|
|
|
|
# Lsp
|
|
''
|
|
+ (lib.concatStringsSep "\n" (
|
|
lib.mapAttrsToList
|
|
(name: color: ''
|
|
face global HighlightDiagnostic${name} ${color},default+bu
|
|
face global Diagnostic${name} ${color},default+bu
|
|
face global TextDiagnostic${name} ${color},default+b
|
|
face global InlayDiagnostic${name} ${color},default+br
|
|
'')
|
|
{
|
|
Error = "red";
|
|
Warning = "yellow";
|
|
Hint = "blue";
|
|
}
|
|
))
|
|
+ ''
|
|
# Color palette
|
|
declare-option str red "red"
|
|
declare-option str mauve "magenta"
|
|
declare-option str maroon "rgb:ee99a0"
|
|
declare-option str pink "rgb:f5bde6"
|
|
declare-option str cyan "cyan"
|
|
declare-option str yellow "yellow"
|
|
declare-option str green "green"
|
|
declare-option str white "white"
|
|
declare-option str blue "blue"
|
|
declare-option str sky "rgb:91d7e3"
|
|
declare-option str lavender "rgb:b7bdf8"
|
|
declare-option str black1 "rgb:202020"
|
|
declare-option str black2 "rgb:272727"
|
|
declare-option str black3 "rgb:3a3a3a"
|
|
declare-option str orange ${orange}
|
|
declare-option str teal "rgb:8bd5ca"
|
|
declare-option str flamingo "rgb:f0c6c6"
|
|
declare-option str gray0 "rgb:606060"
|
|
declare-option str gray1 "rgb:737373"
|
|
declare-option str bright_red "%opt{red}+b"
|
|
declare-option str bright_green "%opt{green}+b"
|
|
declare-option str bright_yellow "%opt{yellow}+b"
|
|
declare-option str bright_blue "%opt{blue}+b"
|
|
declare-option str bright_cyan "%opt{cyan}+b"
|
|
declare-option str foreground %opt{white}
|
|
declare-option str background %opt{black2}
|
|
declare-option str overlay0 "rgb:878787"
|
|
declare-option str overlay1 "rgb:9a9a9a"
|
|
|
|
# Tree-sitter (<https://git.sr.ht/~hadronized/kak-tree-sitter>)
|
|
set-face global ts_attribute "%opt{cyan}"
|
|
set-face global ts_comment "%opt{overlay0}+i"
|
|
set-face global ts_conceal "%opt{mauve}+i"
|
|
set-face global ts_constant "%opt{orange}"
|
|
set-face global ts_constant_builtin_boolean "%opt{sky}"
|
|
set-face global ts_constant_character "%opt{yellow}"
|
|
set-face global ts_constant_macro "%opt{mauve}"
|
|
set-face global ts_constructor "%opt{cyan}"
|
|
set-face global ts_diff_plus "%opt{green}"
|
|
set-face global ts_diff_minus "%opt{red}"
|
|
set-face global ts_diff_delta "%opt{blue}"
|
|
set-face global ts_diff_delta_moved "%opt{mauve}"
|
|
set-face global ts_error "%opt{red}+b"
|
|
set-face global ts_function "%opt{blue}"
|
|
set-face global ts_function_builtin "%opt{blue}+i"
|
|
set-face global ts_function_macro "%opt{mauve}"
|
|
set-face global ts_hint "%opt{blue}+b"
|
|
set-face global ts_info "%opt{green}+b"
|
|
set-face global ts_keyword "%opt{mauve}"
|
|
set-face global ts_keyword_conditional "%opt{mauve}+i"
|
|
set-face global ts_keyword_control_conditional "%opt{mauve}+i"
|
|
set-face global ts_keyword_control_directive "%opt{mauve}+i"
|
|
set-face global ts_keyword_control_import "%opt{mauve}+i"
|
|
set-face global ts_keyword_directive "%opt{mauve}+i"
|
|
set-face global ts_keyword_storage "%opt{mauve}"
|
|
set-face global ts_keyword_storage_modifier "%opt{mauve}"
|
|
set-face global ts_keyword_storage_modifier_mut "%opt{mauve}"
|
|
set-face global ts_keyword_storage_modifier_ref "%opt{teal}"
|
|
set-face global ts_label "%opt{cyan}+i"
|
|
set-face global ts_markup_bold "%opt{orange}+b"
|
|
set-face global ts_markup_heading "%opt{red}"
|
|
set-face global ts_markup_heading_1 "%opt{red}"
|
|
set-face global ts_markup_heading_2 "%opt{mauve}"
|
|
set-face global ts_markup_heading_3 "%opt{green}"
|
|
set-face global ts_markup_heading_4 "%opt{yellow}"
|
|
set-face global ts_markup_heading_5 "%opt{pink}"
|
|
set-face global ts_markup_heading_6 "%opt{teal}"
|
|
set-face global ts_markup_heading_marker "%opt{orange}+b"
|
|
set-face global ts_markup_italic "%opt{pink}+i"
|
|
set-face global ts_markup_list_checked "%opt{green}"
|
|
set-face global ts_markup_list_numbered "%opt{blue}+i"
|
|
set-face global ts_markup_list_unchecked "%opt{teal}"
|
|
set-face global ts_markup_list_unnumbered "%opt{mauve}"
|
|
set-face global ts_markup_link_label "%opt{blue}"
|
|
set-face global ts_markup_link_url "%opt{teal}+u"
|
|
set-face global ts_markup_link_uri "%opt{teal}+u"
|
|
set-face global ts_markup_link_text "%opt{blue}"
|
|
set-face global ts_markup_quote "%opt{gray1}"
|
|
set-face global ts_markup_raw "%opt{green}"
|
|
set-face global ts_markup_strikethrough "%opt{gray1}+s"
|
|
set-face global ts_namespace "%opt{blue}+i"
|
|
set-face global ts_operator "%opt{sky}"
|
|
set-face global ts_property "%opt{sky}"
|
|
set-face global ts_punctuation "%opt{overlay1}"
|
|
set-face global ts_punctuation_special "%opt{sky}"
|
|
set-face global ts_special "%opt{blue}"
|
|
set-face global ts_spell "%opt{mauve}"
|
|
set-face global ts_string "%opt{green}"
|
|
set-face global ts_string_regex "%opt{orange}"
|
|
set-face global ts_string_regexp "%opt{orange}"
|
|
set-face global ts_string_escape "%opt{mauve}"
|
|
set-face global ts_string_special "%opt{blue}"
|
|
set-face global ts_string_special_path "%opt{orange}"
|
|
set-face global ts_string_special_symbol "%opt{mauve}"
|
|
set-face global ts_string_symbol "%opt{red}"
|
|
set-face global ts_tag "%opt{mauve}"
|
|
set-face global ts_tag_error "%opt{red}"
|
|
set-face global ts_text "%opt{white}"
|
|
set-face global ts_text_title "%opt{mauve}"
|
|
set-face global ts_type "%opt{yellow}"
|
|
set-face global ts_type_enum_variant "%opt{flamingo}"
|
|
set-face global ts_variable "%opt{blue}"
|
|
set-face global ts_variable_builtin "%opt{red}"
|
|
set-face global ts_variable_other_member "%opt{teal}"
|
|
set-face global ts_variable_parameter "%opt{maroon}+i"
|
|
set-face global ts_warning "%opt{orange}+b"
|
|
''
|