{ config, options, lib, pkgs, ... }: let kittyConf = config.modules.desktop.apps.terminals.kitty; configDir = config.nixosConfig.configDir; in { options.modules.desktop.apps.terminals.kitty = { enable = lib.mkOption { type = lib.types.bool; default = false; }; }; config = lib.mkIf (kittyConf.enable) { modules.desktop.defaultApplications.apps.terminal = rec { package = pkgs.kitty; install = false; cmd = "${package}/bin/kitty"; desktop = "kitty"; }; home.manager.programs.kitty = { enable = true; font = { name = "FiraCode Nerd Font"; size = 12; }; settings = { repaint_delay = 10; input_delay = 3; sync_to_monitor = true; remember_window_size = false; initial_window_width = 640; initial_window_height = 480; enabled_layouts = "*"; tab_bar_min_tabs = 2; tab_bar_edge = "bottom"; tab_bar_style = "powerline"; tab_powerline_style = "slanted"; tab_title_template = "{title}{' :{}'.format(num_windows) if num_windows > 1 else ''}"; background_opacity = "0.8"; }; extraConfig = ''include ./theme.conf''; }; home.manager.xdg.configFile."kitty/theme.conf".source = "${configDir}/kitty/themes/mocha.conf"; }; }