From d35575326bb0e700eb9c8702e32cd346195a6b17 Mon Sep 17 00:00:00 2001 From: hektor Date: Mon, 28 Sep 2026 20:46:52 +0200 Subject: [PATCH] refactor(kitty): nixify configuration --- dots/.config/kitty/kitty.conf | 147 ------------------------------ dots/.config/kitty/nvim.conf | 8 -- home/modules/terminal/default.nix | 140 +++++++++++++++++++++++++++- 3 files changed, 137 insertions(+), 158 deletions(-) delete mode 100644 dots/.config/kitty/kitty.conf delete mode 100644 dots/.config/kitty/nvim.conf diff --git a/dots/.config/kitty/kitty.conf b/dots/.config/kitty/kitty.conf deleted file mode 100644 index b60518c..0000000 --- a/dots/.config/kitty/kitty.conf +++ /dev/null @@ -1,147 +0,0 @@ -#: Fonts {{{ - -font_family Iosevka Term SS08 -bold_font auto -italic_font auto -bold_italic_font auto -font_size 12.0 -disable_ligatures never - -# }}} - -#: Cursor {{{ - -cursor_shape block -cursor_blink_interval 0 - -#: }}} - -#: Scrollback {{{ - -scrollback_lines 8192 -scrollbar scrolled -scrollback_pager_history_size 1024 - -#: }}} - -#: Mouse {{{ - -mouse_hide_wait 0.0 -paste_actions quote-urls-at-prompt - -#: }}} - -#: Performance tuning {{{ - -repaint_delay 8 -input_delay 2 - -#: }}} - -#: Terminal bell {{{ - -enable_audio_bell yes -window_alert_on_bell yes - -#: }}} - -#: Window layout {{{ - -remember_window_size no -remember_window_position no -enabled_layouts * -hide_window_decorations yes - -#: }}} - -#: Advanced {{{ - -notify_on_cmd_finish unfocused - -#: }}} - -#: OS specific tweaks {{{ - -linux_display_server auto -wayland_enable_ime no - -#: }}} - -#: Keyboard shortcuts {{{ - -kitty_mod ctrl+shift -map kitty_mod+c copy_to_clipboard -map kitty_mod+v paste_from_clipboard -map cmd+v -# map kitty_mod+o pass_selection_to_program -# map kitty_mod+o pass_selection_to_program firefox -# map kitty_mod+y new_window less @selection -map kitty_mod+z scroll_to_prompt -1 -map kitty_mod+x scroll_to_prompt 1 -map kitty_mod+h show_scrollback -# map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R -#:: For more details on piping screen and buffer contents to external -#:: programs, see launch . -# map kitty_mod+g show_last_command_output -# map kitty_mod+enter launch --cwd=current -# map cmd+enter -# map ctrl+n launch --location=neighbor -# map ctrl+f launch --location=first -map kitty_mod+n -map cmd+n -map kitty_mod+w -map shift+cmd+d -map kitty_mod+] -map kitty_mod+[ -map kitty_mod+f -map kitty_mod+b -map kitty_mod+` -map kitty_mod+r -map cmd+r -map kitty_mod+1 -map cmd+1 -map kitty_mod+2 -map cmd+2 -map kitty_mod+3 -map cmd+3 -map kitty_mod+4 -map cmd+4 -map kitty_mod+5 -map cmd+5 -map kitty_mod+6 -map cmd+6 -map kitty_mod+7 -map cmd+7 -map kitty_mod+8 -map cmd+8 -map kitty_mod+9 -map cmd+9 -map kitty_mod+0 -# map kitty_mod+c new_tab # FIXME: conflict with 'copy' -map cmd+t -map kitty_mod+q -map cmd+w -map kitty_mod+. -map kitty_mod+, -map kitty_mod+alt+t -map shift+cmd+i -map kitty_mod+f1 -map kitty_mod+f11 -map ctrl+cmd+f -map kitty_mod+f10 -map opt+cmd+s -map kitty_mod+u kitten unicode_input -map ctrl+cmd+space -map kitty_mod+/ kitty_shell window -map kitty_mod+f5 -map kitty_mod+r load_config_file - -map shift+cmd+/ -map cmd+h -map opt+cmd+ -map cmd+m -map cmd+q - -#: }}} - -include ./nvim.conf diff --git a/dots/.config/kitty/nvim.conf b/dots/.config/kitty/nvim.conf deleted file mode 100644 index 5b2a4e8..0000000 --- a/dots/.config/kitty/nvim.conf +++ /dev/null @@ -1,8 +0,0 @@ -allow_remote_control socket-only -listen_on unix:/tmp/kitty -shell_integration enabled - -action_alias kitty_scrollback_nvim kitten ~/.local/share/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py -map kitty_mod+h kitty_scrollback_nvim -map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output -mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output diff --git a/home/modules/terminal/default.nix b/home/modules/terminal/default.nix index 3d30ad7..3d9e217 100644 --- a/home/modules/terminal/default.nix +++ b/home/modules/terminal/default.nix @@ -2,7 +2,6 @@ config, lib, pkgs, - dotsPath, ... }: @@ -20,10 +19,145 @@ in programs.kitty = { enable = true; package = config.nixgl.wrap pkgs.kitty; - extraConfig = builtins.readFile (dotsPath + "/.config/kitty/kitty.conf"); + settings = { + #: Fonts {{{ + font_family = "Iosevka Term SS08"; + bold_font = "auto"; + italic_font = "auto"; + bold_italic_font = "auto"; + font_size = 12.0; + disable_ligatures = "never"; + # }}} + + #: Cursor {{{ + cursor_shape = "block"; + cursor_blink_interval = 0; + #: }}} + + #: Scrollback {{{ + scrollback_lines = 8192; + scrollbar = "scrolled"; + scrollback_pager_history_size = 1024; + #: }}} + + #: Mouse {{{ + mouse_hide_wait = 0.0; + paste_actions = "quote-urls-at-prompt"; + #: }}} + + #: Performance tuning {{{ + repaint_delay = 8; + input_delay = 2; + #: }}} + + #: Terminal bell {{{ + enable_audio_bell = true; + window_alert_on_bell = true; + #: }}} + + #: Window layout {{{ + remember_window_size = false; + remember_window_position = false; + enabled_layouts = "*"; + hide_window_decorations = true; + #: }}} + + #: Advanced {{{ + notify_on_cmd_finish = "unfocused"; + #: }}} + + #: OS specific tweaks {{{ + linux_display_server = "auto"; + wayland_enable_ime = false; + #: }}} + + kitty_mod = "ctrl+shift"; + allow_remote_control = "socket-only"; + listen_on = "unix:/tmp/kitty"; + shell_integration = "enabled"; + }; + + #: Keyboard shortcuts {{{ + keybindings = { + "kitty_mod+c" = "copy_to_clipboard"; + "kitty_mod+v" = "paste_from_clipboard"; + "cmd+v" = ""; + # map kitty_mod+o pass_selection_to_program + # map kitty_mod+o pass_selection_to_program firefox + # map kitty_mod+y new_window less @selection + "kitty_mod+z" = "scroll_to_prompt -1"; + "kitty_mod+x" = "scroll_to_prompt 1"; + "kitty_mod+h" = "kitty_scrollback_nvim"; + # map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R + #:: For more details on piping screen and buffer contents to external + #:: programs, see launch . + # map kitty_mod+g show_last_command_output + # map kitty_mod+enter launch --cwd=current + # map cmd+enter + # map ctrl+n launch --location=neighbor + # map ctrl+f launch --location=first + "kitty_mod+n" = ""; + "cmd+n" = ""; + "kitty_mod+w" = ""; + "shift+cmd+d" = ""; + "kitty_mod+]" = ""; + "kitty_mod+[" = ""; + "kitty_mod+f" = ""; + "kitty_mod+b" = ""; + "kitty_mod+`" = ""; + "cmd+r" = ""; + "kitty_mod+1" = ""; + "cmd+1" = ""; + "kitty_mod+2" = ""; + "cmd+2" = ""; + "kitty_mod+3" = ""; + "cmd+3" = ""; + "kitty_mod+4" = ""; + "cmd+4" = ""; + "kitty_mod+5" = ""; + "cmd+5" = ""; + "kitty_mod+6" = ""; + "cmd+6" = ""; + "kitty_mod+7" = ""; + "cmd+7" = ""; + "kitty_mod+8" = ""; + "cmd+8" = ""; + "kitty_mod+9" = ""; + "cmd+9" = ""; + "kitty_mod+0" = ""; + # map kitty_mod+c new_tab # FIXME: conflict with 'copy' + "cmd+t" = ""; + "kitty_mod+q" = ""; + "cmd+w" = ""; + "kitty_mod+." = ""; + "kitty_mod+," = ""; + "kitty_mod+alt+t" = ""; + "shift+cmd+i" = ""; + "kitty_mod+f1" = ""; + "kitty_mod+f11" = ""; + "ctrl+cmd+f" = ""; + "kitty_mod+f10" = ""; + "opt+cmd+s" = ""; + "kitty_mod+u" = "kitten unicode_input"; + "ctrl+cmd+space" = ""; + "kitty_mod+/" = "kitty_shell window"; + "kitty_mod+f5" = ""; + "kitty_mod+r" = "load_config_file"; + + "shift+cmd+/" = ""; + "cmd+h" = ""; + "opt+cmd+" = ""; + "cmd+m" = ""; + "cmd+q" = ""; + + "kitty_mod+g" = "kitty_scrollback_nvim --config ksb_builtin_last_cmd_output"; + }; + #: }}} + actionAliases.kitty_scrollback_nvim = "kitten ~/.local/share/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py"; + mouseBindings."ctrl+shift+right press" = + "ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output"; }; - home.file.".config/kitty/nvim.conf".source = dotsPath + "/.config/kitty/nvim.conf"; home.file.".local/share/kitty-scrollback.nvim".source = pkgs.vimPlugins.kitty-scrollback-nvim; }; }