-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
{ catppuccinTheme }: { pkgs
, lib
, ...
}: {
programs =
let
# Convert the input string's first character to upper case.
# Example: "foo" -> "Foo"
toCapital = with lib;
str:
let
len = builtins.stringLength str;
head = strings.toUpper (builtins.substring 0 1 str);
tail = builtins.substring 1 (len - 1) str;
in
head + tail;
in
{
# The fast, feature-rich, GPU based terminal emulator
# https://sw.kovidgoyal.net/kitty/
kitty = {
enable = true;
font = {
name = "Dank Mono";
size = 16;
};
# Kitty's customisability is top-notch.
keybindings = {
"kitty_mod+t" = "new_tab_with_cwd";
"kitty_mod+n" = "new_window_with_cwd";
"kitty_mod+r" = "start_resizing_window";
"kitty_mod+s" = "swap_with_window";
"kitty_mod+f" = "focus_visible_window";
"kitty_mod+k" = "neighboring_window top";
"kitty_mod+h" = "neighboring_window left";
"kitty_mod+j" = "neighboring_window down";
"kitty_mod+l" = "neighboring_window right";
"kitty_mod+a" = "next_layout";
};
settings = {
# Background
background_opacity = "0.9";
# Layouts
enabled_layouts = "fat,tall,grid,horizontal,vertical,splits";
# Tabs
tab_bar_edge = "top";
tab_bar_style = "powerline";
};
shellIntegration = {
enableBashIntegration = true;
enableZshIntegration = true;
};
theme = "Catppuccin-${toCapital catppuccinTheme}";
};
};
}