summaryrefslogtreecommitdiffstats
path: root/modules/desktop/apps/terminals/kitty.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/desktop/apps/terminals/kitty.nix')
-rw-r--r--modules/desktop/apps/terminals/kitty.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/modules/desktop/apps/terminals/kitty.nix b/modules/desktop/apps/terminals/kitty.nix
new file mode 100644
index 0000000..b2339c9
--- /dev/null
+++ b/modules/desktop/apps/terminals/kitty.nix
@@ -0,0 +1,54 @@
+{
+ 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";
+ };
+}