diff --git a/.config/kak/autoload/filetype.kak b/.config/kak/autoload/filetype.kak index 5f8d047b..9c300913 100644 --- a/.config/kak/autoload/filetype.kak +++ b/.config/kak/autoload/filetype.kak @@ -153,8 +153,8 @@ hook global WinSetOption filetype=man %{ hook global WinSetOption filetype=kdl %{ set-option window formatcmd "kdlfmt format -" - hook -group kdl-auto-format window BufWritePre .* format - hook -once -always WinSetOption filetype=.* %{ + hook -group kdl-auto-format window BufWritePre .* %{ try format } + hook -once -always window WinSetOption filetype=.* %{ unset-option window formatcmd remove-hooks window kdl-auto-format } diff --git a/.config/kak/autoload/proj.kak b/.config/kak/autoload/proj.kak index 13ecd899..c518464b 100644 --- a/.config/kak/autoload/proj.kak +++ b/.config/kak/autoload/proj.kak @@ -10,10 +10,3 @@ define-command ide %{ # set global toolsclient tools } -# project-specific configuration -hook global BufCreate (.*/)?(\.kakrc\.local|\.kakrc\.local|\.kakrc) %{ - set-option buffer filetype kak -} -try %{ source .kakrc } catch %{ - try %{ source .kakrc.local } catch %{ try %{ source .local.kakrc } } -} diff --git a/.config/kak/autoload/repl.kak b/.config/kak/autoload/repl.kak new file mode 100644 index 00000000..44072684 --- /dev/null +++ b/.config/kak/autoload/repl.kak @@ -0,0 +1,5 @@ +provide-module repl %∴ + define-command repl %{ + new %{ edit -scratch; set buffer filetype kak } + } +∴ diff --git a/.config/kak/autoload/root.kak b/.config/kak/autoload/root.kak new file mode 100644 index 00000000..e6a074f7 --- /dev/null +++ b/.config/kak/autoload/root.kak @@ -0,0 +1,15 @@ +provide-module root %∴ + declare-option str-list root_globs .git .kakrc kakrc + # project-specific configuration + hook global BufCreate (.*/)?(\.kakrc\.local|\.kakrc\.local|\.kakrc) %{ + set-option buffer filetype kak + } + try %{ source .kakrc } catch %{ + try %{ source .kakrc.local } catch %{ try %{ source .local.kakrc } } + } + + hook global KakBegin .* %{ + # discover project root + } + +∴ diff --git a/.config/kak/kakrc b/.config/kak/kakrc index f8365270..8b601ac8 100644 --- a/.config/kak/kakrc +++ b/.config/kak/kakrc @@ -18,6 +18,7 @@ define-command -override false fail require-module ui-mode require-module colemak require-module clipboard +require-module root try %{ %opt{on_server} @@ -171,9 +172,7 @@ define-command exec-selection %{ map -docstring 'execute selection' global kak x ': exec-selection' -define-command repl %{ - new %{ edit -scratch; set buffer filetype kak } -} +require-module repl # jumplist @@ -187,12 +186,12 @@ map -docstring 'add selection' global normal Y a require-module url-open map -docstring "Open URL" global goto u ': url-open' +# apply and validate niri config hook global BufWritePost .*/\.config/niri/.*\.kdl(##.+)? %{ - try %{ - nop %sh{ - yadm alt >/dev/null - } - } catch %{ - fail gamer sippy + eval %sh{ + yadm alt >/dev/null + if ! niri validate >/dev/null; then + echo 'info "Error in niri config, check *debug*"' + fi } } diff --git a/.config/niri/main.kdl b/.config/niri/main.kdl index f1a4ad05..52ebcb6b 100644 --- a/.config/niri/main.kdl +++ b/.config/niri/main.kdl @@ -1,4 +1,3 @@ -gamer sauce input { keyboard { xkb {