My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/infra/libkookie/modules/workstation/ui/kitty/default.nix

117 lines
3.0 KiB

/**
* 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.
'';
};
fontSize = mkOption {
type = types.int;
default = 12;
description = ''
Set the font size to use in kitty. This will generate a
`font_size` expression.
'';
};
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);
}