123 lines
3.7 KiB
Nix
123 lines
3.7 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
# Let-In --------------------------------------------------------------------------------------- {{{
|
|
let
|
|
inherit (lib) mkIf;
|
|
backgroundDependantColors = colors: with colors; {
|
|
background = "#${base}";
|
|
foreground = "#${main}";
|
|
|
|
# Cursor
|
|
cursor = "#${blue}";
|
|
cursor_text_color = "#${base}";
|
|
|
|
# Selection
|
|
selection_background = "#${muted}";
|
|
selection_foreground = "#${base}";
|
|
|
|
# Tab bar
|
|
tab_bar_background = "#${basehl}";
|
|
inactive_tab_background = "#${strong}";
|
|
};
|
|
in
|
|
# }}}
|
|
{
|
|
# Kitty terminal
|
|
# https://sw.kovidgoyal.net/kitty/conf.html
|
|
# https://rycee.gitlab.io/home-manager/options.html#opt-programs.kitty.enable
|
|
programs.kitty.enable = true;
|
|
|
|
# General config ----------------------------------------------------------------------------- {{{
|
|
|
|
programs.kitty.settings = {
|
|
# # https://fsd.it/shop/fonts/pragmatapro/
|
|
# font_family = "PragmataPro Mono Liga";
|
|
font_family = "FiraCode Nerd Font";
|
|
font_size = "14.0";
|
|
adjust_line_height = "120%";
|
|
disable_ligatures = "cursor"; # disable ligatures when cursor is on them
|
|
|
|
# Window layout
|
|
hide_window_decorations = "titlebar-only";
|
|
window_padding_width = "10";
|
|
|
|
# Tab bar
|
|
tab_bar_edge = "top";
|
|
tab_bar_style = "powerline";
|
|
tab_title_template = "Tab {index}: {title}";
|
|
active_tab_font_style = "bold";
|
|
inactive_tab_font_style = "normal";
|
|
tab_activity_symbol = "";
|
|
|
|
# Shell integration manually enabled for fish
|
|
shell_integration = "disabled";
|
|
};
|
|
|
|
# Change the style of italic font variants
|
|
# programs.kitty.extraConfig = ''
|
|
# font_features PragmataProMonoLiga-Italic +ss06
|
|
# font_features PragmataProMonoLiga-BoldItalic +ss07
|
|
# '';
|
|
|
|
programs.kitty.extras.useSymbolsFromNerdFont = "FiraCode Nerd Font";
|
|
# }}}
|
|
|
|
# Colors config ------------------------------------------------------------------------------ {{{
|
|
programs.kitty.extras.colors = with pkgs.lib.colors; {
|
|
enable = true;
|
|
|
|
# Colors that aren't dependent on background
|
|
common = with pkgs.lib.colors.solarized.colors; {
|
|
# black
|
|
color0 = "#${darkBasehl}";
|
|
color8 = "#${darkBase}";
|
|
# red
|
|
color1 = "#${red}";
|
|
color9 = "#${orange}";
|
|
# green
|
|
color2 = "#${green}";
|
|
color10 = "#${darkestTone}";
|
|
# yellow
|
|
color3 = "#${yellow}";
|
|
color11 = "#${darkTone}";
|
|
# blue
|
|
color4 = "#${blue}";
|
|
color12 = "#${lightTone}";
|
|
# magenta
|
|
color5 = "#${magenta}";
|
|
color13 = "#${violet}";
|
|
# cyan
|
|
color6 = "#${cyan}";
|
|
color14 = "#${lightestTone}";
|
|
# white
|
|
color7 = "#${lightBasehl}";
|
|
color15 = "#${lightBase}";
|
|
# url underline color to fit colors
|
|
url_color = "#${blue}";
|
|
# tab bar
|
|
active_tab_foreground = "#${lightBase}";
|
|
active_tab_background = "#${green}";
|
|
inactive_tab_foreground = "#${lightBase}";
|
|
};
|
|
|
|
# Background dependent colors
|
|
dark = backgroundDependantColors solarized.dark;
|
|
light = backgroundDependantColors solarized.light;
|
|
};
|
|
|
|
programs.fish.functions.set-term-colors = {
|
|
body = "term-background $term_background";
|
|
onVariable = "term_background";
|
|
};
|
|
programs.fish.interactiveShellInit = ''
|
|
# Set term colors based on value of `$term_background` when shell starts up.
|
|
set-term-colors
|
|
# Manually enable shell integration
|
|
if set -q KITTY_INSTALLATION_DIR
|
|
set --global KITTY_SHELL_INTEGRATION enabled
|
|
source "$KITTY_INSTALLATION_DIR/shell-integration/fish/vendor_conf.d/kitty-shell-integration.fish"
|
|
set --prepend fish_complete_path "$KITTY_INSTALLATION_DIR/shell-integration/fish/vendor_completions.d"
|
|
end
|
|
'';
|
|
# }}}
|
|
}
|