72 lines
2.2 KiB
Nix
72 lines
2.2 KiB
Nix
inputs@{ machine, ... }:
|
|
{
|
|
imports = machine.program {
|
|
name = "kitty";
|
|
inherit inputs;
|
|
requirements = [ "graphical" ];
|
|
home-config =
|
|
{ pkgs, flakes, ... }:
|
|
{
|
|
home.packages = pkgs.custom.maple-fonts-pack;
|
|
|
|
programs.kitty = {
|
|
enable = true;
|
|
font = {
|
|
name = "Maple Mono NF";
|
|
size = 11.0;
|
|
package = pkgs.jetbrains-mono;
|
|
};
|
|
|
|
settings = {
|
|
scrollback_lines = 20000;
|
|
allow_hyperlinks = true;
|
|
|
|
repaint_delay = 10;
|
|
input_delay = 3;
|
|
|
|
enable_audio_bell = false;
|
|
update_check_interval = 0;
|
|
|
|
initial_window_width = "95c";
|
|
initial_window_height = "30c";
|
|
remember_window_size = "no";
|
|
|
|
draw_minimal_borders = false;
|
|
hide_window_decorations = true;
|
|
|
|
shell = "${pkgs.writeScriptBin "tmux-sesh" ''
|
|
RAND=$(cat /dev/urandom | head -c 20 | base32)
|
|
export TMUX_SESSION_NAME="kitty-$RAND"
|
|
exec ${pkgs.tmux}/bin/tmux new -e TMUX_SESSION_NAME=$TMUX_SESSION_NAME -s "$TMUX_SESSION_NAME"
|
|
''}/bin/tmux-sesh";
|
|
clipboard_control = "write-clipboard write-primary read-clipboard read-primary";
|
|
|
|
foreground = "#fcfcfc";
|
|
background = "#232627";
|
|
linux_display_server = "auto";
|
|
};
|
|
|
|
keybindings = {
|
|
"ctrl+f" =
|
|
"launch --location=hsplit --allow-remote-control kitty +kitten ${flakes.kitty-search}/search.py @active-kitty-window-id";
|
|
"ctrl+alt+r" = "load_config_file";
|
|
"ctrl+shift+r" = "no_op";
|
|
"super+`" = "no_op";
|
|
"ctrl+EQUAL" = "change_font_size all +2.0";
|
|
"ctrl+minus" = "change_font_size all -2.0";
|
|
"ctrl+0" = "change_font_size all 0";
|
|
# "ctrl+/" = "send_text all ";
|
|
"super+~" = "no_op";
|
|
|
|
# required for vim!!
|
|
# terminals map ctrl+i to tab. I want them to do different things in vim.
|
|
"ctrl+i" = "send_text all \\x01";
|
|
};
|
|
|
|
extraConfig = ''
|
|
mouse_map left click ungrabbed no-op
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|