nix/modules/home-manager/kitty.nix

177 lines
5.1 KiB
Nix

{
colors,
font,
...
}: {
programs.kitty = {
enable = true;
darwinLaunchOptions = ["--single-instance"];
shellIntegration = {
enableFishIntegration = true;
};
settings = with colors.withHashPrefix; {
font_family = font.name;
bold_font = "${font.name} Heavy";
italic_font = "${font.name} Italic";
bold_italic_font = "${font.name} Heavy Italic";
font_size = toString font.size;
inactive_text_alpha = "0.5";
copy_on_select = true;
hide_window_decorations = "yes";
scrollback_lines = 500000;
symbol_map = "U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E6AA,U+E700-U+E7C5,U+EA60-U+EBEB,U+F000-U+F2E0,U+F300-U+F32F,U+F400-U+F4A9,U+F500-U+F8FF,U+F0001-U+F1AF0 Symbols Nerd Font Mono";
# use `kitty + list-fonts --psnames` to get the font's PostScript name
allow_remote_control = true;
listen_on = "unix:/tmp/kitty";
repaint_delay = 3;
input_delay = 3;
sync_to_monitor = true;
adjust_line_height = 0;
window_padding_width = "10.0";
window_margin_width = "0.0";
confirm_os_window_close = 0;
enabled_layouts = "splits:split_axis=vertical,stack";
shell_integration = "disabled";
enable_audio_bell = true;
visual_bell_duration = "0.25";
visual_bell_color = bg3;
url_style = "single";
strip_trailing_spaces = "smart";
# open_url_modifiers ctrl
tab_bar_align = "left";
tab_bar_style = "separator";
tab_separator = ''""'';
tab_bar_edge = "top";
tab_title_template = ''"{fmt.fg.tab}{fmt.bg.tab} {activity_symbol}{title} "'';
active_tab_font_style = "normal";
## name: Catppuccin Kitty Mocha
## author: Catppuccin Org
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground = text;
background = bg;
selection_foreground = bg;
selection_background = text;
# Cursor colors
cursor = text;
cursor_text_color = bg;
# URL underline color when hovering with mouse
url_color = primary;
# Kitty window border colors
active_border_color = primary;
inactive_border_color = bg3;
bell_border_color = urgent;
# OS Window titlebar colors
wayland_titlebar_color = "system";
macos_titlebar_color = "system";
# Tab bar colors
active_tab_foreground = bg;
active_tab_background = primary;
inactive_tab_foreground = fgdim;
inactive_tab_background = bg2;
tab_bar_background = bg;
# Colors for marks (marked text in the terminal)
mark1_foreground = bg;
mark1_background = blue;
mark2_foreground = bg;
mark2_background = purple;
mark3_foreground = bg;
mark3_background = blue;
# The 16 terminal colors
# black
color0 = colors.withHashPrefix."0";
color8 = colors.withHashPrefix."8";
# red
color1 = colors.withHashPrefix."1";
color9 = colors.withHashPrefix."9";
# green
color2 = colors.withHashPrefix."2";
color10 = colors.withHashPrefix."10";
# yellow
color3 = colors.withHashPrefix."3";
color11 = colors.withHashPrefix."11";
# blue
color4 = colors.withHashPrefix."4";
color12 = colors.withHashPrefix."12";
# magenta
color5 = colors.withHashPrefix."5";
color13 = colors.withHashPrefix."13";
# cyan
color6 = colors.withHashPrefix."6";
color14 = colors.withHashPrefix."14";
# white
color7 = colors.withHashPrefix."7";
color15 = colors.withHashPrefix."15";
};
keybindings = {
"ctrl+shift+1" = "change_font_size all 12.5";
"ctrl+shift+2" = "change_font_size all 18.5";
"ctrl+shift+3" = "change_font_size all 26";
"ctrl+shift+4" = "change_font_size all 32";
"ctrl+shift+5" = "change_font_size all 48";
"ctrl+shift+o" = "launch --type=tab --stdin-source=@screen_scrollback $EDITOR";
"ctrl+shift+equal" = "change_font_size all +0.5";
"ctrl+shift+minus" = "change_font_size all -0.5";
"shift+insert" = "paste_from_clipboard";
"ctrl+shift+v" = "paste_from_selection";
"ctrl+shift+c" = "copy_to_clipboard";
# kill pane
"ctrl+shift+q" = "close_window";
# kill tab
"ctrl+alt+shift+q" = "close_tab";
"ctrl+shift+j" = "launch --location=hsplit --cwd=current";
"ctrl+shift+l" = "launch --location=vsplit --cwd=current";
"ctrl+alt+shift+k" = "move_window up";
"ctrl+alt+shift+h" = "move_window left";
"ctrl+alt+shift+l" = "move_window right";
"ctrl+alt+shift+j" = "move_window down";
"ctrl+h" = "neighboring_window left";
"ctrl+l" = "neighboring_window right";
"ctrl+k" = "neighboring_window up";
"ctrl+j" = "neighboring_window down";
"ctrl+shift+n" = "nth_window -1";
"ctrl+shift+space>u" = "kitten hints --type=url --program @";
"ctrl+shift+z" = "toggle_layout stack";
};
};
}