diff options
Diffstat (limited to 'modules/terminal')
-rw-r--r-- | modules/terminal/default.nix | 15 | ||||
-rw-r--r-- | modules/terminal/kitty.nix | 84 |
2 files changed, 99 insertions, 0 deletions
diff --git a/modules/terminal/default.nix b/modules/terminal/default.nix new file mode 100644 index 0000000..8e9d5f8 --- /dev/null +++ b/modules/terminal/default.nix @@ -0,0 +1,15 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkEnableOption; +in { + imports = [ + ./kitty.nix + ]; + + options.terminal = { + kitty = mkEnableOption "Enable the kitty terminal."; + }; +} diff --git a/modules/terminal/kitty.nix b/modules/terminal/kitty.nix new file mode 100644 index 0000000..88aa151 --- /dev/null +++ b/modules/terminal/kitty.nix @@ -0,0 +1,84 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf; + cfg = config.terminal; +in { + config = mkIf cfg.kitty { + default.terminal = lib.mkDefault "kitty"; + + home-manager.users.${config.user} = { + programs.kitty = { + enable = true; + environment = {}; + extraConfig = ""; + + settings = { + # Font + font_family = config.theme.font.monospace; + font_size = 11; + bold_font = "auto"; + italic_font = "auto"; + bold_italic_font = "auto"; + + # Scrollback + scrollback_lines = 10000; + scrollback_pager_history_size = 300; # MB + + # Urls + detect_urls = true; + show_hyperlink_targets = false; + + # Window + window_padding_width = config.theme.outerGap; + window_border_width = 0; + draw_minimal_borders = true; + background_opacity = config.theme.opacity; + + # Disable audio + enable_audio_bell = false; + + # Disable close prompt + confirm_os_window_close = 0; + + # colors + background = "#${config.theme.colors.bg}"; + foreground = "#${config.theme.colors.fg}"; + selection_background = "#${config.theme.colors.surface.bg}"; + selection_foreground = "#${config.theme.colors.surface.fg}"; + url_color = "#${config.theme.colors.bright.yellow}"; + cursor = "#${config.theme.colors.fg}"; + active_border_color = "#${config.theme.colors.primary}"; + inactive_border_color = "#${config.theme.colors.bg}"; + active_tab_background = "#${config.theme.colors.bg}"; + active_tab_foreground = "#${config.theme.colors.fg}"; + inactive_tab_background = "#${config.theme.colors.bg}"; + inactive_tab_foreground = "#${config.theme.colors.fg}"; + tab_bar_background = "#${config.theme.colors.bg}"; + + # normal + color0 = "#${config.theme.colors.normal.black}"; + color1 = "#${config.theme.colors.normal.red}"; + color2 = "#${config.theme.colors.normal.green}"; + color3 = "#${config.theme.colors.normal.yellow}"; + color4 = "#${config.theme.colors.normal.blue}"; + color5 = "#${config.theme.colors.normal.magenta}"; + color6 = "#${config.theme.colors.normal.cyan}"; + color7 = "#${config.theme.colors.normal.white}"; + + # bright + color8 = "#${config.theme.colors.bright.black}"; + color9 = "#${config.theme.colors.bright.red}"; + color10 = "#${config.theme.colors.bright.green}"; + color11 = "#${config.theme.colors.bright.yellow}"; + color12 = "#${config.theme.colors.bright.blue}"; + color13 = "#${config.theme.colors.bright.magenta}"; + color14 = "#${config.theme.colors.bright.cyan}"; + color15 = "#${config.theme.colors.bright.white}"; + }; + }; + }; + }; +} |