# OPTIONS set-option global startup_info_version 20260412 set-option global ui_options terminal_assistant=none add-highlighter global/ number-lines -relative add-highlighter global/ show-matching # LOCAL nop %sh{ mkdir -p "$kak_config/autoload" [ -e "$kak_config/autoload/stdlib" ] || ln -s "$kak_runtime/autoload" "$kak_config/autoload/stdlib" } colorscheme %sh{ if [ -e ~/.lightmode ]; then echo four-colors-light else echo four-colors-dark fi } declare-user-mode file-mode declare-user-mode options-mode map global -docstring 'File' user 'f' ': enter-user-mode file-mode' map global -docstring 'Buffer' user ' ' ': b ' map global -docstring 'Open (git)' file-mode 'a' ': file-open-git' map global -docstring 'Git diff file' file-mode 'd' ': git diff %val{buffile}' map global -docstring 'Open (fd)' file-mode 'f' ': file-open' map global -docstring 'Open (recent)' file-mode 'r' ': file-open-recent' map global -docstring 'Git grep' file-mode 'g' ': git grep ' map global -docstring 'Open (nnn)' file-mode 'n' ': nnn-open %val{buffile}' map global -docstring 'Open (nnn)' file-mode 'N' ': nnn-open .' map global -docstring 'Open/create in dir' file-mode 'c' ': open-create-in-dir' map global -docstring 'Options' user 'o' ': enter-user-mode options-mode' map global -docstring 'LP Dark mode' options-mode 'd' ': colorscheme four-colors-dark' map global -docstring 'LP Light mode' options-mode 'l' ': colorscheme four-colors-light' 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} } } define-command -override file-open-recent %{ prompt -menu -shell-script-candidates %{ cat ~/.cache/kak-mru } 'File (recent): ' %{ edit -- %val{text} } } define-command -override -params 1 nnn-open %{ terminal nnn-kak-edit %arg{1} %val{session} %val{client} } define-command -override open-create-in-dir %{ execute-keys ': edit ' %sh{dirname "$kak_buffile"}/ } # CHANGE STATUS BAR COLOR IN INSERT MODE hook global ModeChange push:.*:insert %{ set-face window StatusLine 'default,rgb:1c4a21' } hook global ModeChange pop:insert:.* %{ unset-face window StatusLine } # 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' bundle-theme kakoune-themes 'https://codeberg.org/anhsirk0/kakoune-themes' # FZF bundle fzf.kak 'https://github.com/andreyorst/fzf.kak' %{ map global -docstring 'FZF menu' user s ': fzf-mode' require-module fzf set-option global fzf_highlight_command "bat" } hook global BufCreate [^*].* %{ nop %sh{ mru=~/.cache/kak-mru echo "$kak_buffile" | awk '!seen[$0]++' - "$mru" | sponge "$mru" }} # MATCH bundle match 'https://github.com/kmafeni04/match.kak' %{ declare-user-mode match map global user m ': enter-user-mode match' -docstring 'Match' map global match m m -docstring 'Match next matching pair' map global match i ': match-inside' -docstring 'Match inside object' map global match a ': match-around' -docstring 'Match around object' map global match n ': match-next' -docstring 'Match next object' map global match p ': match-prev' -docstring 'Match previous object' map global match s ': match-surround-add' -docstring 'Surround selection with character' map global match d ': match-surround-delete' -docstring "Delete selection's surrounding character" map global match r ': match-surround-replace' -docstring "Replace selection's surrounding character" map global match u ': match-surround-undo' -docstring "Undo" map global match U ': match-surround-redo' -docstring "Redo" } # 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' }