parent
141a837d25
commit
76f3d25f0c
@ -0,0 +1,18 @@ |
|||||||
|
/** |
||||||
|
* The main configuration for kitty used on _all_ systems. |
||||||
|
* |
||||||
|
* The module is designed to use the default values I would like to |
||||||
|
* use on my systems, however this will not stay this way, seeing as |
||||||
|
* I plan on replacing it with the home-manager module in the future |
||||||
|
* which will be tailored less to my use-case :) |
||||||
|
*/ |
||||||
|
|
||||||
|
{ config, home-manager, ... }: |
||||||
|
|
||||||
|
{ |
||||||
|
# Load the home-manager kitty module |
||||||
|
imports = [ <modules/workstation/ui/kitty/default.nix> ]; |
||||||
|
|
||||||
|
# Customise kitty installation |
||||||
|
libkookie.ui.kitty.enable = true; |
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
{ config, lib, ... }: |
||||||
|
|
||||||
|
let |
||||||
|
cfg = config.libkookie.ui.kitty; |
||||||
|
colors = with lib; |
||||||
|
(concatMapStringsSep "\n" (a: a) |
||||||
|
(mapAttrsToList (k: v: "${k} ${v}") cfg.colors)); |
||||||
|
in |
||||||
|
'' |
||||||
|
font_size 10 |
||||||
|
|
||||||
|
open_url_modifiers ctrl+shift |
||||||
|
open_url_with default |
||||||
|
|
||||||
|
term ${cfg.term} |
||||||
|
|
||||||
|
cursor_shape ${cfg.cursorShape} |
||||||
|
|
||||||
|
background_opacity 0.85 |
||||||
|
|
||||||
|
enable_audio_bell no |
||||||
|
|
||||||
|
${colors} |
||||||
|
'' |
@ -0,0 +1,108 @@ |
|||||||
|
/** |
||||||
|
* 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); |
||||||
|
} |
@ -0,0 +1,12 @@ |
|||||||
|
{ config, lib, pkgs, home-manager, ... } @ args: |
||||||
|
|
||||||
|
let |
||||||
|
cfg = config.libkookie.ui.kitty; |
||||||
|
kittyConf = (import ./config.nix args); |
||||||
|
in |
||||||
|
{ |
||||||
|
home.packages = [ pkgs.kitty ] ++ cfg.extraFonts; |
||||||
|
|
||||||
|
xdg.configFile."kitty/kitty.conf" = { text = kittyConf; }; |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue