printf %s "$kak_main_reg_dquote" | wl-copy > /dev/null 2>&1 &
}}
+
+# run on file open
+# ──────────────────────────────────────────────────────────────────────────────
+hook global BufOpenFile .* %{
+ modeline-parse
+}
+
+hook global BufCreate [^*].* %{
+ nop %sh{
+ mru=~/.cache/kak-mru
+ echo "$kak_buffile" | awk '!seen[$0]++' - "$mru" | sponge "$mru"
+ }
+}
+
+
+# dynamic scrolloff
+# ──────────────────────────────────────────────────────────────────────────────
+hook global WinCreate [^*].* %{
+ editorconfig-load
+ hook -once window WinDisplay .* %{
+ hook window WinResize [0-9]*\.[0-9]* %{
+ set-option window scrolloff %sh{
+ printf '%u,%u' "$(($kak_window_height / 5))" "$(($kak_window_width / 8))"
+ }
+ }
+ }
+}
+
+
+# session manager
+# ──────────────────────────────────────────────────────────────────────────────
+evaluate-commands %sh{
+ kks init
+}
+
+
# Enable PLUGin manager
# ──────────────────────────────────────────────────────────────────────────────
source "%val{config}/plugins/plug.kak/rc/plug.kak"
set-option global indentwidth 4
-# dynamic scrolloff
-# ──────────────────────────────────────────────────────────────────────────────
-hook global WinCreate [^*].* %{
- hook -once window WinDisplay .* %{
- hook window WinResize [0-9]*\.[0-9]* %{
- set-option window scrolloff %sh{
- printf '%u,%u' "$(($kak_window_height / 5))" "$(($kak_window_width / 8))"
- }
- }
- }
-}
-
-
# Different Cursor color in insert mode
# ──────────────────────────────────────────────────────────────────────────────
# Shades of blue/cyan for normal mode
}
-# Enable editor config
-# ──────────────────────────────────────────────────────────────────────────────
-hook global WinCreate ^[^*]+$ %{ editorconfig-load }
-
-
# Extra editor commands
# ──────────────────────────────────────────────────────────────────────────────
# tab replacement
map global goto m '<esc>m;' -docstring 'matching char'
map global normal <c-a> ': inc %val{count} +<ret>'
map global normal <c-x> ': inc %val{count} -<ret>'
+map global normal q Q
+map global normal -docstring 'Next buffer ' <c-n> ': buffer-next<ret>'
+map global normal -docstring 'Previous buffer' <c-b> ': buffer-previous<ret>'
+
# kks mappings
# ──────────────────────────────────────────────────────────────────────────────
map global normal -docstring 'terminal' <c-t> ': kks-connect terminal<ret>'
map global normal -docstring 'files' <c-f> ': kks-connect terminal-popup kks-files<ret>'
-map global normal -docstring 'buffers' <c-b> ': kks-connect terminal-popup kks-buffers<ret>'
-map global normal -docstring 'buffers' <c-b> ': kks-connect terminal-popup kks-buffers<ret>'
+map global normal -docstring 'buffers' q ': kks-connect terminal-popup kks-buffers<ret>'
map global normal -docstring 'live grep' <c-g> ': kks-connect terminal-popup kks-grep<ret>'
map global normal -docstring 'lines in buffer' <c-l> ': kks-connect terminal-popup kks-lines<ret>'
map global normal -docstring 'recent files' <c-r> ': kks-connect terminal-popup kks-mru<ret>'
map global normal -docstring 'vcs client' <c-v> ': kks-connect terminal-popup lazygit<ret>'
map global normal -docstring 'file browser' <c-h> ': kks-connect terminal-panel kks-lf<ret>'
+
# default user mode
# ──────────────────────────────────────────────────────────────────────────────
-map global user -docstring 'Buffer mode' b ':enter-user-mode buffermode<ret>'
-map global user -docstring 'Selection mode' s ':enter-user-mode selectionmode<ret>'
-map global user -docstring 'edit kakrc' e ': e ~/.config/kak/kakrc<ret>'
+map global user -docstring 'Buffer mode' b ':enter-user-mode buffermode<ret>'
+map global user -docstring 'Selection mode' s ':enter-user-mode selectionmode<ret>'
+map global user -docstring 'edit kakrc' e ': e ~/.config/kak/kakrc<ret>'
+map global user -docstring 'relative line numbers enable' r ': add-highlighter window/nl number-lines -relative -hlcursor<ret>'
+map global user -docstring 'relative line numbers disable' R ': remove-highlighter window/nl<ret>'
+
# buffer user mode
# ──────────────────────────────────────────────────────────────────────────────
declare-user-mode buffermode
map global buffermode -docstring 'enable autocomplete' a ': set-option -add buffer autocomplete insert<ret>'
map global buffermode -docstring 'disable autocomplete' A ': set-option -remove buffer autocomplete insert<ret>'
+map global buffermode -docstring 'Previous buffer' b ': buffer-previous<ret>'
+map global buffermode -docstring 'clean tabs and trailing whitespace in the buffer' c ': clean-buffer<ret>'
+map global buffermode -docstring 'buffer picker' l ': kks-connect terminal-popup kks-buffers<ret>'
map global buffermode -docstring 'Lint buffer' L ': buffer *lint-output*<ret>'
-map global buffermode -docstring 'buffer picker' l ': connect terminal-popup kcr fzf buffers<ret>'
map global buffermode -docstring 'Next buffer ' n ': buffer-next<ret>'
-map global buffermode -docstring 'Previous buffer' p ': buffer-previous<ret>'
-map global buffermode -docstring 'clean tabs and trailing whitespace in the buffer' c ': clean-buffer<ret>'
map global buffermode -docstring 'wrap enable' w ': add-highlighter buffer/bw wrap<ret>'
map global buffermode -docstring 'wrap disable' W ': remove-highlighter buffer/bw<ret>'
declare-user-mode selectionmode
map global selectionmode -docstring 'clean tabs and trailing whitespace in selections' c ': clean-selections<ret>'
-# window user mode
-# ──────────────────────────────────────────────────────────────────────────────
-declare-user-mode windowmode
-map global windowmode -docstring 'relative line numbers enable' r ': add-highlighter window/nl number-lines -relative -hlcursor<ret>'
-map global windowmode -docstring 'relative line numbers disable' R ': remove-highlighter window/nl<ret>'
# terminal config (via foot.kak)
# ──────────────────────────────────────────────────────────────────────────────
set-option global foot_popup_flags '-a kakpopup'
set-option global foot_panel_cmd 'foot'
-
-# run on file open
-# ──────────────────────────────────────────────────────────────────────────────
-hook global BufOpenFile .* %{
- modeline-parse
-}
-
-# session manager
-# ──────────────────────────────────────────────────────────────────────────────
-evaluate-commands %sh{
- kks init
-}
-
-
-# Reload kakrc and .kak when saving.
-# ──────────────────────────────────────────────────────────────────────────────
-# Adds -override to definitions (unless they seem to be python defs!)
-# Evals provide module directly
-
-def resource -params 1 %{
- eval %sh{
- file=$(dirname "$1")/.reload.kak
- cat "$1" |
- sed 's/^def \([^:]*\)$/def -override \1/' |
- sed 's/^define-command /def -override /' |
- sed 's/^addhl /addhl -override/' |
- sed 's/^add-highlighter /addhl -override /' |
- sed 's/^provide-module \w\+ /eval /' |
- cat > "$file"
- printf %s "
- source $file
- nop %sh{
- rm $file
- }
- "
- }
- echo Reloaded %arg{1}
-}
-
-rmhooks global reload-kak
-hook -group reload-kak global BufWritePost (.*kakrc|.*\.kak) %{
- resource %val{hook_param}
-}