nix/home/sckova/terminal/kitty.nix

132 lines
3.2 KiB
Nix

{
config,
pkgs,
...
}:
let
# Map Catppuccin colors to Kitty theme structure
kitty-colors = with config.scheme.withHashtag; ''
# vim:ft=kitty
## name: Kova's Nixified Kitty
## author: Catppuccin Org & sckova
## license: MIT
## upstream: https://github.com/catppuccin/kitty
## blurb: The theme generated from the NixOS configuration!
# The basic colors
foreground ${base05}
background ${base00}
selection_foreground ${base00}
selection_background ${base06}
# Cursor colors
cursor ${base06}
cursor_text_color ${base00}
# URL underline color when hovering with mouse
url_color ${base06}
# Kitty window border colors
active_border_color ${config.scheme.withHashtag.${config.colors.accent}}
inactive_border_color ${base01}
bell_border_color ${base12}
# Tab bar colors
active_tab_foreground ${base11}
active_tab_background ${config.scheme.withHashtag.${config.colors.accent}}
inactive_tab_foreground ${base05}
inactive_tab_background ${base10}
tab_bar_background ${base11}
# Colors for marks (marked text in the terminal)
mark1_foreground ${base00}
mark1_background ${base09}
mark2_foreground ${base00}
mark2_background ${base0D}
mark3_foreground ${base00}
mark3_background ${base15}
# The 16 terminal colors
# black
color0 ${base02}
color8 ${base02}
# red
color1 ${base08}
color9 ${base08}
# green
color2 ${base0B}
color10 ${base0B}
# yellow
color3 ${base0A}
color11 ${base0A}
# blue
color4 ${base0D}
color12 ${base0D}
# magenta
color5 ${base17}
color13 ${base17}
# cyan
color6 ${base0C}
color14 ${base0C}
# white
color7 ${base04}
color15 ${base04}
'';
kitty-colors-file = pkgs.writeTextFile {
name = "kitty-colors";
text = kitty-colors;
destination = "/kitty-colors.conf";
};
in
{
home.file.".config/kitty/themes" = {
source = kitty-colors-file;
recursive = true;
};
home.file.".config/kitty/ssh.conf" = {
text = ''
shell_integration inherited
'';
};
programs = {
kitty = {
enable = true;
enableGitIntegration = true;
font = {
name = config.userOptions.fontMono.name;
size = config.userOptions.fontMono.size;
};
shellIntegration.enableFishIntegration = true;
keybindings = {
"ctrl+k" = "combine : clear_terminal scroll active : clear_terminal scrollback active";
};
settings = {
include = "/home/${config.userOptions.username}/.config/kitty/themes/kitty-colors.conf";
scrollback_lines = 10000;
wheel_scroll_multiplier = 5.0;
touch_scroll_multiplier = 5.0;
enable_audio_bell = false;
update_check_interval = 0;
confirm_os_window_close = 0;
window_padding_width = 4;
tab_bar_min_tabs = 2;
tab_bar_edge = "top";
tab_bar_style = "powerline";
tab_powerline_style = "slanted";
mouse_hide_wait = "-1.0";
wayland_titlebar_color = "system";
macos_titlebar_color = "system";
};
};
};
}