{ config
, lib
, ...
}:

with lib;
let
  cfg = config.my.programs.kitty;
in
{
  options.my.programs.kitty.enable = mkEnableOption "kitty";

  config = mkIf cfg.enable {
    my.terminal.package = config.home-manager.users.moritz.programs.kitty.package;
    my.shell.aliases.ssh = "TERM=xterm-256color command ssh";
    home-manager.users.moritz = {
      programs.kitty = {
        enable = true;
        settings = {
          scrollback_lines = 10000;
          enable_audio_bell = false;
          cursor_shape = "underline";
          window_padding_width = 3;
          confirm_os_window_close = 0;
          background_opacity = "0.9";
          font_features = "IntelOneMono-Regular +ss01";
          resize_in_steps = "yes";
        };
        keybindings = {
          "ctrl+plus" = "change_font_size all +2.0";
          "ctrl+minus" = "change_font_size all -2.0";
        };
        font = {
          name = "Intel One Mono";
          size = 10;
        };
      };
    };
  };
}