123 lines
3.4 KiB
Nix
123 lines
3.4 KiB
Nix
# TODO: Expose some settings
|
|
{
|
|
config,
|
|
lib,
|
|
mylib,
|
|
...
|
|
}: let
|
|
inherit (config.modules) kitty color;
|
|
in {
|
|
options.modules.kitty = import ./options.nix {inherit lib mylib;};
|
|
|
|
config = lib.mkIf kitty.enable {
|
|
programs.kitty = {
|
|
enable = true;
|
|
shellIntegration.enableFishIntegration = true;
|
|
|
|
font = {
|
|
name = "${config.modules.color.font}";
|
|
size = 12;
|
|
};
|
|
|
|
keybindings = {
|
|
"kitty_mod" = "ctrl+shift";
|
|
"kitty_mod+enter" = "launch --cwd=current";
|
|
"kitty_mod+j" = "next_window";
|
|
"kitty_mod+k" = "previous_window";
|
|
"kitty_mod+l" = "next_layout";
|
|
};
|
|
|
|
settings = {
|
|
editor = config.home.sessionVariables.EDITOR;
|
|
scrollback_lines = 10000;
|
|
window_padding_width = 10; # Looks stupid with editors if bg doesn't match
|
|
# hide_window_decorations = "yes";
|
|
enabled_layouts = "grid,vertical,horizontal";
|
|
|
|
allow_remote_control = "yes"; # For nnn file preview or nvim scrollback
|
|
listen_on = "unix:@mykitty";
|
|
|
|
tab_bar_min_tabs = 2; # Don't show a single tab
|
|
tab_bar_edge = "bottom";
|
|
tab_bar_style = "powerline";
|
|
tab_powerline_style = "round";
|
|
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
|
|
|
|
#
|
|
# Color Theme
|
|
#
|
|
|
|
# The basic colors
|
|
background = color.hexS.base;
|
|
foreground = color.hexS.text;
|
|
selection_foreground = color.hexS.base;
|
|
selection_background = color.hexS.rosewater;
|
|
|
|
# Cursor colors
|
|
cursor = color.hexS.rosewater;
|
|
cursor_text_color = color.hexS.base;
|
|
|
|
# URL underline color when hovering with mouse
|
|
url_color = color.hexS.rosewater;
|
|
|
|
# Kitty window border colors
|
|
active_border_color = color.hexS.lavender;
|
|
inactive_border_color = color.hexS.overlay0;
|
|
bell_border_color = color.hexS.yellow;
|
|
|
|
# OS Window titlebar colors
|
|
wayland_titlebar_color = "system";
|
|
macos_titlebar_color = "system";
|
|
|
|
# Tab bar colors
|
|
active_tab_foreground = color.hexS.base;
|
|
active_tab_background = color.hexS.lavender;
|
|
inactive_tab_foreground = color.hexS.text;
|
|
inactive_tab_background = color.hexS.crust;
|
|
tab_bar_background = color.hexS.base;
|
|
|
|
# Color for marks (marked text in the terminal)
|
|
mark1_foreground = color.hexS.base;
|
|
mark1_background = color.hexS.lavender;
|
|
mark2_foreground = color.hexS.base;
|
|
mark2_background = color.hexS.mauve;
|
|
mark3_foreground = color.hexS.base;
|
|
mark3_background = color.hexS.sapphire;
|
|
|
|
# The 16 terminal colors
|
|
# black
|
|
color0 = color.hexS.subtext1;
|
|
color8 = color.hexS.subtext0;
|
|
|
|
# red
|
|
color1 = color.hexS.red;
|
|
color9 = color.hexS.red;
|
|
|
|
# green
|
|
color2 = color.hexS.green;
|
|
color10 = color.hexS.green;
|
|
|
|
# yellow
|
|
color3 = color.hexS.yellow;
|
|
color11 = color.hexS.yellow;
|
|
|
|
# blue
|
|
color4 = color.hexS.blue;
|
|
color12 = color.hexS.blue;
|
|
|
|
# magenta
|
|
color5 = color.hexS.pink;
|
|
color13 = color.hexS.pink;
|
|
|
|
# cyan
|
|
color6 = color.hexS.teal;
|
|
color14 = color.hexS.teal;
|
|
|
|
# white
|
|
color7 = color.hexS.surface2;
|
|
color15 = color.hexS.surface1;
|
|
};
|
|
};
|
|
};
|
|
}
|