# OPTIONS set-option global startup_info_version 20260412 set-option global ui_options terminal_assistant=none add-highlighter global/ number-lines -relative # LOCAL nop %sh{ mkdir -p "$kak_config/autoload" ln -s "$kak_runtime/autoload" "$kak_config/autoload/stdlib" } declare-user-mode file-mode declare-user-mode options-mode map global -docstring "File" user 'f' ': enter-user-mode file-mode' map global -docstring "Open (git)" file-mode 'a' ': file-open-git' map global -docstring "Open (fd)" file-mode 'f' ': file-open' map global -docstring "Options" user 'o' ': enter-user-mode options-mode' map global -docstring "Light mode" options-mode 'l' ': colorscheme one-light' map global -docstring "Dark mode" options-mode 'd' ': colorscheme one-darker' map global -docstring "Paste clipboard (append)" user 'p' ' xsel -bo' map global -docstring "Paste clipboard (insert)" user 'P' '! xsel -bo' map global -docstring "Yank to clipboard" user 'y' ' xsel -bi' define-command -override file-open %{ prompt -menu -shell-script-candidates %{ fd -t f } 'File: ' %{ edit -- %val{text} } } define-command -override file-open-git %{ prompt -menu -shell-script-candidates %{ git ls-files } 'File (git): ' %{ edit -- %val{text} } } # ODIN hook global BufSetOption filetype=odin %{ set-option buffer formatcmd 'odinfmt -stdin' } # LSP eval %sh{kak-lsp} lsp-enable set-option global modelinefmt "%opt{lsp_modeline} %opt{modelinefmt}" map global user l ': enter-user-mode lsp' -docstring 'LSP mode' map global goto d :lsp-definition -docstring 'LSP definition' map global goto r :lsp-references -docstring 'LSP references' map global goto y :lsp-type-definition -docstring 'LSP type definition' map global insert ':try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks tab> }' -docstring 'Select next snippet placeholder' map global object a 'lsp-object' -docstring 'LSP any symbol' map global object 'lsp-object' -docstring 'LSP any symbol' map global object f 'lsp-object Function Method' -docstring 'LSP function or method' map global object t 'lsp-object Class Interface Module Namespace Struct' -docstring 'LSP class or module' map global object d 'lsp-diagnostic-object error warning' -docstring 'LSP errors and warnings' map global object D 'lsp-diagnostic-object error' -docstring 'LSP errors' map global lsp p ': lsp-find-error --previous error' -docstring 'find previous error' # BUNDLE source "%val{config}/bundle/kak-bundle/rc/kak-bundle.kak" bundle-noload kak-bundle https://codeberg.org/jdugan6240/kak-bundle # COLORSCHEME bundle-theme kak-one "https://codeberg.org/raiguard/kak-one" colorscheme 'one-darker' bundle-theme kakoune-themes "https://codeberg.org/anhsirk0/kakoune-themes" # FZF bundle fzf.kak "https://github.com/andreyorst/fzf.kak" %{ map global normal ': fzf-mode' } hook global BufCreate [^*].* %{ nop %sh{ mru=~/.cache/kak-mru echo "$kak_buffile" | awk '!seen[$0]++' - "$mru" | sponge "$mru" }} # SURROUND bundle kakoune-surround "h-youhei/kakoune-surround" %{ declare-user-mode surround map global surround s ': surround' -docstring 'surround' map global surround c ': change-surround' -docstring 'change' map global surround d ': delete-surround' -docstring 'delete' map global surround t ': select-surrounding-tag' -docstring 'select tag' map global -docstring 'Surround' user 'S' ': enter-user-mode surround' } # HARPOON bundle kak-harpoon "https://codeberg.org/raiguard/kak-harpoon" %{ harpoon-add-bindings } # EASYMOTION bundle easymotion.kak https://git.sr.ht/~voroskoi/easymotion.kak %{ require-module easymotion map global -docstring 'easy j' user ': easymotion-j' map global -docstring 'easy k' user ': easymotion-k' map global -docstring 'easy w' user ': easymotion-w' map global -docstring 'easy b'user ': easymotion-b' }