/** * A home-manager configuration module for the kitty terminal * * TODO: This module should probably just be merged into the * home-manager module, which does _most_ of this already. That way * I won't have to maintain this personally :) */ { config, lib, pkgs, home-manager, ... } @ args: let cfg = config.libkookie.ui.kitty; in with lib; { options.libkookie.ui.kitty = { enable = mkEnableOption "kitty terminal configuration"; extraFonts = mkOption { type = with types; listOf package; default = [ pkgs.twemoji-color-font ]; description = '' Specify a set of extra fonts provided to the kitty configuration. By default ktty will use the standard monospace font specified on your system (via the libkookie.fonts module), but to enable emoji rendering (or ligatures?) you can specify additional fonts here. ''; }; term = mkOption { type = types.str; default = "xterm-256color"; description = '' Specify what $TERM variable will be set. The default is chosen to allow backwards compatibility with existing systems. You can set this varibale to `xterm-kitty` to enable kitty specific features in applications. This may cause problems with legacy applications and remote systems! ''; }; cursorShape = mkOption { type = types.str; default = "block"; description = '' Specify the shape of the cursor used for kitty. ''; }; colors = mkOption { type = types.attrs; default = { selection_foreground = "#93a1a1"; selection_background = "#073642"; active_border_color = "#00ff00"; inactive_border_color = "#cccccc"; cursor = "#ffffff"; foreground = "#c5c8c6"; background = "#1d1f21"; # black color0 = "#1d1f21"; color8 = "#969896"; # red color1 = "#cc6666"; color9 = "#cc6666"; # green color2 = "#b5bd68"; color10 = "#b5bd68"; # yellow color3 = "#f0c674"; color11 = "#f0c674"; # blue color4 = "#81a2be"; color12 = "#81a2be"; # magenta color5 = "#b294bb"; color13 = "#b294bb"; # cyan color6 = "#8abeb7"; color14 = "#8abeb7"; # white color7 = "#c5c8c6"; color15 = "#ffffff"; }; description = '' Specify the set of colours used to render text in the terminal, as well as the standard foreground, background, selection, and border colours. The default colours are based on the solarized dark theme. ''; }; }; config = mkIf cfg.enable (import ./setup.nix args); }