diff --git a/programs/default.nix b/programs/default.nix index bcbdd5a..3d8075e 100644 --- a/programs/default.nix +++ b/programs/default.nix @@ -5,6 +5,7 @@ ./ghostty ./git ./jujutsu + # ./kitty ./nixvim ./tmux ./wezterm diff --git a/programs/kitty/default.nix b/programs/kitty/default.nix new file mode 100644 index 0000000..a8ba4e0 --- /dev/null +++ b/programs/kitty/default.nix @@ -0,0 +1,35 @@ +{ pkgs, ... }: + +let + actionsConfig = builtins.readFile ./open-actions.conf; +in +{ + programs.kitty = { + enable = true; + keybindings = { + "kitty_mod+enter" = "new_window_with_cwd"; + "f1" = "create_marker"; + "f2" = "remove_marker"; + "ctrl+p" = "scroll_to_mark prev"; + "ctrl+n" = "scroll_to_mark next"; + }; + themeFile = "Tango_Dark"; + font = { + name = "SF Mono"; + size = 13; + }; + settings = { + active_tab_background = "#FF0"; + copy_on_select = true; + enabled_layouts = "Tall,Stack,Horizontal,*"; + kitty_mod = "cmd+option"; + macos_quit_when_last_window_closed = true; + scrollback_lines = 100000; + tab_bar_style = "powerline"; + tab_powerline_style = "slanted"; + }; + shellIntegration.enableFishIntegration = true; + }; + + home.file.".config/kitty/open-actions.conf".text = actionsConfig; +} diff --git a/programs/kitty/open-actions.conf b/programs/kitty/open-actions.conf new file mode 100644 index 0000000..3c172ab --- /dev/null +++ b/programs/kitty/open-actions.conf @@ -0,0 +1,40 @@ +# Open any file with a fragment in vim, fragments are generated +# by the hyperlink-grep kitten and nothing else so far. +protocol file +fragment_matches [0-9]+ +action launch --type=overlay --cwd=current hx +${FRAGMENT} -- ${FILE_PATH} + +# Open text files without fragments in the editor +protocol file +ext txt,md,conf,ini,log,sh,py,js,html,css,xml,json,yaml,yml,scala,sbt,java,go,py,toml,sql,swift,nix,lua +action launch --type=overlay --cwd=current -- hx -- ${FILE_PATH} + +# Open any image in the full kitty window by clicking on it +protocol file +mime image/* +action launch --type=overlay kitten icat --hold -- ${FILE_PATH} + +# Tail a log file (*.log) in a new OS Window and reduce its font size +protocol file +ext log +action launch --title ${FILE} --type=os-window tail -f -- ${FILE_PATH} +action change_font_size current -2 + +# Open script files +protocol file +ext sh,command,tool +action launch --hold --type=os-window kitty +shebang $FILE_PATH $SHELL + +# Open shell specific script files +protocol file +ext fish,bash,zsh +action launch --hold --type=os-window kitty +shebang $FILE_PATH __ext__ + +# Open directories +protocol file +mime inode/directory +action launch --type=os-window --cwd -- $FILE_PATH + +# Open ssh URLs with ssh command +protocol ssh +action launch --type=os-window ssh -- $URL diff --git a/programs/nixvim/options.nix b/programs/nixvim/options.nix index 1d1e3b1..8ebd3cb 100644 --- a/programs/nixvim/options.nix +++ b/programs/nixvim/options.nix @@ -1,4 +1,4 @@ -{ ... }: +{ pkgs, ... }: { programs.nixvim = { @@ -18,7 +18,7 @@ relativenumber = true; scrolloff = 8; shiftwidth = 2; - signcolumn = "auto"; + signcolumn = "yes"; smartindent = true; swapfile = false; tabstop = 2;