AutoYADM commit: 2025-06-17 20:47:57

This commit is contained in:
Daniel Fichtinger 2025-06-17 20:47:57 -04:00
parent 1f952af0ed
commit 80c399ee03
16 changed files with 476 additions and 131 deletions

View file

@ -0,0 +1,7 @@
function dfmt --description 'Format date for task'
if not date -d "$argv" +%Y-%m-%dT%H:%M &>/dev/null
date +%Y-%m-%dT%H:%M
else
date -d "$argv" +%Y-%m-%dT%H:%M
end
end

View file

@ -183,3 +183,25 @@ pin = "fed3edcab70b31b416eb31c2ccf4a979c120d640"
[language.bibtex.queries]
path = "runtime/queries/bibtex"
# man
# [language.man.grammar.source.git]
# url = "https://github.com/ribru17/tree-sitter-man"
# pin = "e332ea95d5c921d1108a46d1b2b0f017079e1fd8"
# [language.man.grammar]
# path = "src"
# compile = "cc"
# compile_args = ["-c", "-fpic", "../parser.c", "-I", ".."]
# compile_flags = ["-O3"]
# link = "cc"
# link_args = ["-shared", "-fpic", "parser.o", "-o", "man.so"]
# link_flags = ["-O3"]
# [language.man.queries.source.git]
# url = "https://github.com/ribru17/tree-sitter-man"
# pin = "e332ea95d5c921d1108a46d1b2b0f017079e1fd8"
# [language.man.queries]
# path = "queries/man"

View file

@ -1,3 +1,4 @@
provide-module bootstrap %~
# this is for bootstrapping all external dependencies of my kakoune setup
# installs:
@ -43,3 +44,4 @@ define-command -docstring %{
install-pacman
install-cargo
}
~

View file

@ -1,3 +1,4 @@
provide-module clipboard %~
declare-option -docstring %{
Command for copying to system clipboard.
} str clipboard_copy_cmd 'wl-copy'
@ -55,4 +56,4 @@ map -docstring "yank the split selections into the clipboard" global user Y ": c
map -docstring "paste the clipboard" global user p "<a-!> wl-paste -n<ret>"
map -docstring "paste the clipboard before" global user P "! wl-paste -n<ret>"
map -docstring "replace with the clipboard" global user R '"_d! wl-paste -n<ret>'
~

View file

@ -138,3 +138,4 @@ hook global BufCreate .*[.](jinja) %{
set-option buffer filetype html
}

View file

@ -0,0 +1,7 @@
hook global WinSetOption tree_sitter_lang=sh %{
set-option window tree_sitter_lang bash
}
hook global WinSetOption filetype=(bash|sh) %{
set-option window formatcmd 'shfmt -i 4 -ln=auto -ci -bn'
}

View file

@ -3,7 +3,7 @@ declare-option -docstring "shell command used for the 'format-selections' and 'f
declare-option -docstring "whether the LSP should be preferred for formatting" bool lsp_fmt false
define-command format-buffer -docstring "Format the contents of the buffer" %{
evaluate-commands %sh{
evaluate-commands -draft %sh{
if [ "$kak_opt_lsp_fmt" = "false" ]; then
echo "format-buffer-pipe"
else
@ -13,7 +13,7 @@ define-command format-buffer -docstring "Format the contents of the buffer" %{
}
define-command format-selections -docstring "Format the selections individually" %{
evaluate-commands %sh{
evaluate-commands -draft %sh{
if [ "${kak_opt_lsp_fmt}" = "false" ]; then
echo "format-selections-pipe"
else

View file

@ -40,6 +40,20 @@ define-command -override -hidden lsp-do-send-sync %{
}
}
define-command -override lsp-progress-disable %{
# override to do nothing b/c it's annoying lol
define-command -hidden -override lsp-handle-progress -params 6 nop
}
define-command -override lsp-progress-enable %{
# identical to kak-lsp default
define-command -hidden -override lsp-handle-progress -params 6 %{
set-option global lsp_modeline_progress %sh{
if ! "$6"; then
echo "$kak_opt_lsp_progress_indicator"
fi
}
}
}
@ -137,6 +151,15 @@ define-command -hidden lsp-filetype-hooks-update %{
# commands to execute for lsp window settings
lsp-enable-window
inlay-on
# hooks to disable inline diagnostics while typing
hook -group dynamic-inline-diags window ModeChange (push|pop):.*insert %{
try inline-diagnostics-off
}
hook -group dynamic-inline-diags window ModeChange (push|pop):insert:.* %{
try inline-diagnostics-on
}
# only map to UI mode if that module is available
map -docstring 'toggle inlay hints' window ui h ': inlay-toggle<ret>'
map -docstring 'toggle inlay diagnostics' window ui d ': inlay-diagnostics-toggle<ret>'
@ -329,59 +352,12 @@ hook -group lsp-filetype-toml global BufSetOption filetype=toml %{
}
}
# # can be empty, global, or file
# declare-option -hidden str harper_add ""
# define-command -hidden harper-add -params 1 %{
# set-option window harper_add %arg{1}
# lsp-code-actions -auto-single
# }
# # can override this to customize what's rendered in the menu
# # Each code action is two args: its name, and the corresponding command
# define-command -override -hidden lsp-perform-code-action -params 1.. -docstring "Called on :lsp-code-actions" %{
# evaluate-commands %sh{
# # harper specific filtering
# if printf '%s' "$kak_opt_lsp_servers" | grep -q 'harper-ls'; then
# if [ "$kak_opt_harper_add" = "global" ]; then
# # filter and keep only
# echo "echo -debug 'harper adding global'"
# fi
# fi
# echo "echo -debug dumping $# code actions args:"
# echo "echo -debug %arg{@}"
# }
# lsp-menu %arg{@}
# }
define-command lsp-inlay-hint-raw %{
evaluate-commands %sh{
tmp=$(mktemp -d)
pipe="${tmp}/fifo"
mkfifo "$pipe" || { echo "fail failed to create fifo"; exit 1; }
trap "rm -f \"$pipe\"; rmdir \"$tmp\"" EXIT INT QUIT
reg_a="$kak_session
$kak_client
true
false
$kak_buffile
$kak_timestamp
$kak_opt_filetype
$kak_opt_lsp_language_id
$kak_opt_lsp_servers
$kak_opt_lsp_semantic_tokens
$kak_opt_lsp_config
$kak_opt_lsp_server_initialization_options
map-end
textDocument/inlayHint
$kak_buf_line_count"
printf "%s '%s' " "$reg_a" "$pipe" > "$kak_opt_lsp_fifo"
raw=$(cat "$pipe")
raw_escaped=$(printf %s "$raw" | sed "s/'/''/g")
printf "set-register z '%s'\n" "$raw_escaped"
}
remove-hooks global lsp-filetype-sh
hook -group lsp-filetype-sh global BufSetOption filetype=sh %{
set-option buffer lsp_servers %{
[bash-language-server]
root_globs = [".git", ".hg"]
args = ["start"]
}
}

View file

@ -1,8 +1,27 @@
declare-user-mode paragraph
declare-option -hidden str paragraph_select '<a-a>pj[p'
map global normal <a-ret> '<a-a>pj[p'
define-command format-paragraph %{
execute-keys -draft <a-a>p_x:<space>format-selections<ret>
}
define-command -override -params 0..1 reflow-paragraph %{
evaluate-commands -draft -save-regs 'a' %{
set-register a %sh{
if [ "$#" = 0 ]; then
printf '%s' '|fmt<ret>'
else
printf '%s' ':<space>format-selections<ret>'
fi
}
echo -debug %reg{a}
execute-keys -draft '<a-a>p_x:exec <c-r>a<ret>'
}
}
map global normal <a-ret> ': reflow-paragraph<ret>'
map global normal <ret> '<a-a>pj[p<a-;>'
map global normal <s-ret> ': reflow-paragraph formatcmd<ret>'
map -docstring 'paragraph mode' global user <ret> "%opt{paragraph_select}: enter-user-mode -lock paragraph<ret>"
map global paragraph I '>' -docstring 'move right'
map global paragraph M '<' -docstring 'move left'

View file

@ -9,6 +9,8 @@
# echo "nop"
# fi
# }
provide-module plugins %—
# init bundle
source "%val{config}/bundle/kak-bundle/rc/kak-bundle.kak"
@ -113,3 +115,5 @@ bundle pykak https://github.com/tomKPZ/pykak
# bundle kak-ansi https://github.com/eraserhd/kak-ansi
bundle-theme one.kak https://github.com/raiguard/one.kak

View file

@ -1,8 +1,9 @@
define-command -docstring %{
sh [switches] <args>: Run the given shell command. Display its output in an info modal.
shell-command [switches] <args>: Run the given shell command. Display
its output in an info modal.
Switches:
-d echo stdout to *debug* buffer
} -params 1.. sh %{
-d echo stdout to *debug* buffer as well
} -params 1.. shell-command %{
evaluate-commands %sh{
if [ "$1" = "-d" ]; then
debug="true"
@ -15,3 +16,5 @@ define-command -docstring %{
fi
}
}
alias global sh shell-command
alias global ! shell-command

View file

@ -1,3 +1,4 @@
provide-module yazi %~
declare-user-mode yazi
map -docstring "Yazi" global user <space> ': enter-user-mode yazi<ret>'
@ -37,3 +38,4 @@ define-command open-yazi-new-client %{
}
}
map -docstring "open with yazi in new client" global yazi n ': open-yazi-new-client<ret>'
~

View file

@ -0,0 +1,267 @@
# Ashen for Kakoune
# Supports kak-tree-sitter and kak-lsp
# Author: Daniel Fichtinger
# License: MIT
# Upstream: https://sr.ht/~ficd/ashen
# palette
declare-option str cursorline "rgb:191919"
declare-option str text "rgb:b4b4b4"
declare-option str red_flame "rgb:C53030"
declare-option str red_glowing "rgb:DF6464"
declare-option str red_ember "rgb:B14242"
declare-option str orange_glow "rgb:D87C4A"
declare-option str orange_blaze "rgb:C4693D"
declare-option str orange_muted "rgb:6D3B22"
declare-option str orange_smolder "rgb:E49A44"
declare-option str orange_golden "rgb:E5A72A"
declare-option str golden_muted "rgb:6D4D0D"
declare-option str brown "rgb:89492a"
declare-option str brown_dark "rgb:322119"
declare-option str brown_darker "rgb:22150F"
declare-option str blue "rgb:4A8B8B"
declare-option str background "rgb:121212"
declare-option str g_1 "rgb:e5e5e5"
declare-option str g_2 "rgb:d5d5d5"
declare-option str g_3 "rgb:b4b4b4"
declare-option str g_4 "rgb:a7a7a7"
declare-option str g_5 "rgb:949494"
declare-option str g_6 "rgb:737373"
declare-option str g_7 "rgb:535353"
declare-option str g_8 "rgb:323232"
declare-option str g_9 "rgb:212121"
declare-option str g_10 "rgb:1d1d1d"
declare-option str g_11 "rgb:191919"
declare-option str g_12 "rgb:151515"
# Built-in Code Highlighting
set-face global value "%opt{blue}"
set-face global type "%opt{blue}"
set-face global variable "%opt{g_3}"
set-face global module "%opt{orange_glow}+b"
set-face global function "%opt{g_3}+b"
set-face global string "%opt{red_glowing}"
set-face global keyword "%opt{red_ember}"
set-face global operator "%opt{orange_glow}"
set-face global attribute "%opt{g_4}"
set-face global comment "%opt{g_6}+i"
set-face global documentation comment
set-face global meta "%opt{red_ember}"
set-face global builtin function
# Markdown Highlighting
set-face global title "%opt{red_glowing}+b"
set-face global header "%opt{red_glowing}"
set-face global mono "%opt{g_2},%opt{g_10}"
set-face global block "%opt{g_2},%opt{g_10}"
set-face global link "%opt{red_glowing}+ui"
set-face global bullet "%opt{orange_glow}"
set-face global list "%opt{orange_glow}"
# SPECIAL CURSOR BLOCK
# We implement a Helix-like cursor changing color.
# Off by default; ashen_dynamic_cursor option must be set to true.
try %{
declare-option bool ashen_dynamic_cursor false
declare-option bool ashen_eol_cursor false
}
# Helix-like insert/normal mode cursor
set-face global PrimaryCursorNormal "%opt{background},%opt{orange_blaze}+b"
set-face global SecondaryCursorNormal "%opt{background},%opt{orange_muted}"
set-face global PrimaryCursorInsert "%opt{background},%opt{g_3}+b"
set-face global SecondaryCursorInsert "%opt{background},%opt{g_7}"
set-face global PrimaryCursorNormalEol "%opt{background},%opt{orange_smolder}+b"
set-face global SecondaryCursorNormalEol "%opt{background},%opt{golden_muted}"
set-face global PrimaryCursorInsertEol "%opt{background},%opt{g_1}+b"
set-face global SecondaryCursorInsertEol "%opt{background},%opt{g_5}"
set-face global PrimaryCursor PrimaryCursorNormal
set-face global SecondaryCursor SecondaryCursorNormal
try %{
hook global WinCreate .* %{
evaluate-commands %sh{
if [ "$kak_opt_ashen_eol_cursor" = "true" ]; then
echo "set-face window PrimaryCursorEol PrimaryCursorNormalEol"
echo "set-face window SecondaryCursorEol SecondaryCursorNormalEol"
else
echo "set-face window PrimaryCursorEol PrimaryCursorNormal"
echo "set-face window SecondaryCursorEol SecondaryCursorNormal"
fi
}
}
define-command -hidden ashen-set-cursor-mode -params 1 %{
evaluate-commands %sh{
MODE="$1"
if [ "$kak_opt_ashen_dynamic_cursor" = "true" ]; then
echo "set-face window PrimaryCursor PrimaryCursor$MODE"
echo "set-face window SecondaryCursor SecondaryCursor$MODE"
if [ "$kak_opt_ashen_eol_cursor" = "true" ]; then
echo "set-face window PrimaryCursorEol PrimaryCursor${MODE}Eol"
echo "set-face window SecondaryCursorEol SecondaryCursor${MODE}Eol"
else
echo "set-face window PrimaryCursorEol PrimaryCursor$MODE"
echo "set-face window SecondaryCursorEol SecondaryCursor$MODE"
fi
fi
}
}
hook global ModeChange (push|pop):.*insert %{
ashen-set-cursor-mode "Insert"
}
hook global ModeChange (push|pop):insert:.* %{
ashen-set-cursor-mode "Normal"
}
}
# Built-in UI
set-face global Default "%opt{text},%opt{background}"
set-face global PrimarySelection ",%opt{brown_dark}+g"
set-face global SecondarySelection ",%opt{brown_darker}+g"
set-face global PrimaryCursorEol PrimaryCursor
set-face global SecondaryCursorEol SecondaryCursor
set-face global LineNumbers "%opt{g_8}"
set-face global LineNumberCursor "%opt{g_5},%opt{brown_dark}"
set-face global LineNumbersWrapped LineNumbers
set-face global MenuForeground "%opt{background},%opt{orange_blaze}+b"
set-face global MenuBackground "%opt{g_3},%opt{g_9}"
set-face global MenuInfo "%opt{text},%opt{g_9}"
set-face global Information MenuInfo
set-face global InlineInformation "%opt{g_6}+i"
set-face global Error "%opt{red_flame},%opt{background}"
set-face global DiagnosticError ",,%opt{red_flame}+c"
set-face global DiagnosticWarning ",,%opt{orange_golden}+c"
set-face global StatusLine "%opt{g_3},%opt{g_9}"
set-face global StatusLineMode "%opt{orange_glow}+b"
set-face global StatusLineInfo "%opt{red_ember}"
set-face global StatusLineValue "%opt{blue}"
set-face global StatusCursor "%opt{background},%opt{g_3}+b"
set-face global Prompt "%opt{orange_glow}"
set-face global MatchingChar "%opt{orange_smolder}+uf"
set-face global BufferPadding LineNumbers
set-face global Whitespace "%opt{g_7}+f"
# Tree-sitter (<https://git.sr.ht/~hadronized/kak-tree-sitter>)
# kak-tree-sitter defaults
set-face global ts_attribute "%opt{g_4}"
set-face global ts_comment "%opt{g_6}+i"
set-face global ts_comment_unused "%opt{g_6}+is"
set-face global ts_conceal "%opt{red_ember}+i"
set-face global ts_constant "%opt{orange_blaze}"
set-face global ts_constant_builtin_boolean "%opt{blue}"
set-face global ts_constant_character "%opt{red_glowing}+b"
set-face global ts_constant_macro "%opt{blue}"
set-face global ts_constructor "%opt{g_1}"
set-face global ts_diff_plus "%opt{g_6}"
set-face global ts_diff_minus "%opt{red_ember}"
set-face global ts_diff_delta "%opt{brown}"
set-face global ts_diff_delta_moved ts_diff_delta
set-face global ts_error "%opt{red_flame}"
set-face global ts_function "%opt{g_3}+b"
set-face global ts_function_builtin "%opt{g_3}+bi"
set-face global ts_function_macro "%opt{red_ember}"
set-face global ts_hint "%opt{g_4}"
set-face global ts_info "%opt{g_2}"
set-face global ts_keyword "%opt{red_ember}"
set-face global ts_keyword_conditional "%opt{red_ember}"
set-face global ts_keyword_control_conditional "%opt{red_ember}"
set-face global ts_keyword_control_directive "%opt{red_ember}+i"
set-face global ts_keyword_control_import "%opt{red_ember}"
set-face global ts_keyword_directive "%opt{red_ember}+i"
set-face global ts_keyword_storage "%opt{red_ember}"
set-face global ts_keyword_storage_modifier "%opt{red_ember}+i"
set-face global ts_keyword_storage_modifier_mut "%opt{red_ember}+i"
set-face global ts_keyword_storage_modifier_ref "%opt{red_ember}+i"
set-face global ts_label "%opt{red_ember}"
set-face global ts_markup_bold "+b"
set-face global ts_markup_heading "%opt{red_glowing}+b"
set-face global ts_markup_italic "+i"
set-face global ts_markup_list_checked "%opt{orange_glow}"
set-face global ts_markup_list_numbered "%opt{orange_glow}"
set-face global ts_markup_list_unchecked "%opt{orange_glow}"
set-face global ts_markup_list_unnumbered "%opt{orange_glow}"
set-face global ts_markup_link_label "%opt{red_ember}"
set-face global ts_markup_link_url "%opt{red_glowing}+iu"
set-face global ts_markup_link_uri "%opt{red_glowing}+iu"
set-face global ts_markup_link_text "%opt{red_glowing}"
set-face global ts_markup_quote "+i"
set-face global ts_markup_raw_block "%opt{g_2}"
set-face global ts_markup_raw_inline "%opt{g_2},%opt{g_10}"
set-face global ts_markup_strikethrough "+s"
set-face global ts_namespace "%opt{orange_glow}+b"
set-face global ts_operator "%opt{orange_blaze}"
set-face global ts_property "%opt{g_2}"
set-face global ts_punctuation "%opt{g_2}"
set-face global ts_punctuation_special "%opt{orange_golden}"
set-face global ts_special "%opt{orange_smolder}"
set-face global ts_spell ",,%opt{g_5}+c"
set-face global ts_string "%opt{red_glowing}"
set-face global ts_string_regex "%opt{orange_glow}"
set-face global ts_string_regexp "%opt{orange_glow}"
set-face global ts_string_escape "%opt{g_2}"
set-face global ts_string_special "%opt{g_2}"
set-face global ts_string_special_path "%opt{red_glowing}+b"
set-face global ts_string_special_symbol "%opt{orange_smolder}"
set-face global ts_string_symbol "%opt{orange_glow}"
set-face global ts_tag "%opt{orange_glow}+i"
set-face global ts_tag_error "%opt{red_flame}+i"
set-face global ts_text "%opt{text}"
set-face global ts_text_title "%opt{red_glowing}+b"
set-face global ts_type "%opt{blue}"
set-face global ts_type_enum_variant "%opt{orange_blaze}"
set-face global ts_type_enum_variant_builtin "%opt{orange_blaze}"
set-face global ts_variable "%opt{g_3}"
set-face global ts_variable_builtin "%opt{blue}"
set-face global ts_variable_other_member "%opt{g_2}"
set-face global ts_variable_parameter "%opt{g_2}+i"
set-face global ts_warning "%opt{orange_golden}"
# Helix capture groups
set-face global ts_punctuation_delimiter "%opt{orange_smolder}"
set-face global ts_punctuation_bracket "%opt{g_6}"
set-face global ts_type_builtin "%opt{blue}"
set-face global ts_type_parameter "%opt{orange_glow}"
set-face global ts_constant_builtin "%opt{blue}"
set-face global ts_constant_character_escape "%opt{g_2}"
set-face global ts_constant_numeric "%opt{blue}"
set-face global ts_string_special_url "%opt{red_glowing}+b"
set-face global ts_comment_block_documentation "%opt{g_5}+i"
set-face global ts_keyword_operator "%opt{orange_blaze}"
set-face global ts_markup_list "%opt{orange_glow}"
# kak-lsp
set-face global InlayHint "%opt{g_5},%opt{g_12}+i"
set-face global parameter "@ts_variable_paramter"
set-face global enum "@ts_type_enum_variant"
set-face global InlayDiagnosticError Error
set-face global InlayDiagnosticWarning "%opt{orange_golden}"
set-face global InlayDiagnosticInfo "%opt{g_2}"
set-face global InlayDiagnosticHint "%opt{g_4}"
set-face global LineFlagError "%opt{red_flame}"
set-face global LineFlagWarning "%opt{orange_golden}"
set-face global LineFlagInfo "%opt{g_2}"
set-face global LineFlagHint "%opt{g_4}"
set-face global DiagnosticError ",,%opt{red_flame}+c"
set-face global DiagnosticWarning ",,%opt{orange_golden}+c"
set-face global DiagnosticInfo ",,%opt{g_2}+c"
set-face global DiagnosticHint ",,%opt{g_4}+c"
# Infobox faces
set-face global InfoDefault Information
set-face global InfoBlock block
set-face global InfoBlockQuote block
set-face global InfoBullet bullet
set-face global InfoHeader header
set-face global InfoLink link
set-face global InfoLinkMono header
set-face global InfoMono mono
set-face global InfoRule comment
set-face global InfoDiagnosticError InlayDiagnosticError
set-face global InfoDiagnosticHint InlayDiagnosticHint
set-face global InfoDiagnosticInformation InlayDiagnosticInfo
set-face global InfoDiagnosticWarning InlayDiagnosticWarning

View file

@ -2,22 +2,101 @@
# Author: Daniel Fichtinger <daniel@ficd.ca>
# See README.md for explanations.
evaluate-commands %sh{ kak-tree-sitter -dks --init $kak_session }
evaluate-commands %sh{kak-popup init}
colorscheme ashen
require-module hop-kak
require-module fishr
# TODO: refactor config s.t. everything defined in autoload
# provides a module
# Then, use an environment variable to determine whether
# we're on a server. If we are, we don't load a bunch of
# the modules. This lets us keep a unified config without requiring
# all dependencies to be installed.
declare-option -hidden bool on_server %sh{
if [ -z "$KAK_ON_SERVER" ]; then
printf 'false'
else
printf 'true'
fi
}
define-command -override true nop
define-command -override false fail
try %{
%opt{on_server}
colorscheme ashen-local
} catch %{
evaluate-commands %sh{ kak-tree-sitter -dks --init $kak_session }
evaluate-commands %sh{kak-popup init}
colorscheme ashen
require-module hop-kak
require-module fishr
require-module title-bar
require-module notes
require-module plugins
require-module yazi
require-module luar
set-option global luar_interpreter luajit
# only set to foot if we are on wayland
hook global ModuleLoaded wayland %{
set-option global termcmd 'footclient dash -c'
}
# needed for tree-sitter to respect show-matching
define-command -override tree-sitter-user-after-highlighter %{
add-highlighter -override buffer/show-matching show-matching
}
# manually requiring needed for some reason 😢
require-module peneira
declare-user-mode peneira
map -docstring %{
Picker mode
} global user f ': enter-user-mode peneira<ret>'
map -docstring 'pick file' global peneira f ': peneira-files<ret>'
map -docstring 'pick unopened file' global peneira F ': peneira-files -hide-opened<ret>'
map -docstring %{
pick line in buffer
} global peneira '/' ': peneira-lines<ret>'
define-command -override -hidden consume %{
nop %sh{
niri msg action consume-or-expel-window-left
}
}
define-command terminal-consume %{
terminal dash -c 'niri msg action consume-or-expel-window-left; exec fish'
}
alias global tc terminal-consume
define-command -docstring %{
Create a new client in vertial split
} new-consume %{
new consume
}
alias global nc new-consume
alias global n new
define-command -docstring 'open popup shell' popup-shell %{
popup fish
}
alias global pp popup-shell
map -docstring 'popup shell' global user . ': popup-shell<ret>'
try %{
evaluate-commands %sh{kak-lsp-diags}
map -docstring 'enable diagnostic hover' global ui "'" ': lsp-diag-hover-enable<ret>'
map -docstring 'disable diagnostic hover' global ui '"' ': lsp-diag-hover-disable<ret>'
}
}
require-module surround
require-module ficgrep
require-module byline
require-module spell
require-module title-bar
require-module notes
set-option global scrolloff 3,3
require-module ui-mode
require-module luar
set-option global luar_interpreter luajit
try %{
@ -27,24 +106,11 @@ try %{
# disable clippy
set-option -add global ui_options terminal_assistant=none
# only set to foot if we are on wayland
hook global ModuleLoaded wayland %{
set-option global termcmd 'footclient dash -c'
}
# This gets overridden by editorconfig but we set sane default anyways
set-option global tabstop 4
set-option global indentwidth 4
# needed for tree-sitter to respect show-matching
define-command -override tree-sitter-user-after-highlighter %{
add-highlighter -override buffer/show-matching show-matching
# try %{
# remove-highlighter window/bracket
# remove-highlighter window/regex-escaped
# }
}
hook global WinSetOption filetype=kak %{
# make brackets gray a-la Ashen
add-highlighter window/bracket regex [\[\]\(\)\{\}]{1} 0:rgb:737373
@ -121,18 +187,6 @@ define-command -docstring "New terminal in cwd" cwd-terminal %{
# make easy to open new shell
alias global t cwd-terminal
# manually requiring needed for some reason 😢
require-module peneira
declare-user-mode peneira
map -docstring %{
Picker mode
} global user f ': enter-user-mode peneira<ret>'
map -docstring 'pick file' global peneira f ': peneira-files<ret>'
map -docstring 'pick unopened file' global peneira F ': peneira-files -hide-opened<ret>'
map -docstring %{
pick line in buffer
} global peneira '/' ': peneira-lines<ret>'
map global normal <backspace> '"_'
define-command goto-debug %{
@ -155,26 +209,6 @@ map -docstring 'execute selection' global debug x ': exec-selection<ret>'
define-command repl %{
new %{ edit -scratch; set buffer filetype kak }
}
define-command -override -hidden consume %{
nop %sh{
niri msg action consume-or-expel-window-left
}
}
define-command terminal-consume %{
terminal dash -c 'niri msg action consume-or-expel-window-left; exec fish'
}
alias global tc terminal-consume
define-command -docstring %{
Create a new client in vertial split
} new-consume %{
new consume
}
alias global nc new-consume
alias global n new
# jumplist
@ -184,13 +218,6 @@ map -docstring 'save to jumplist' global normal <c-v> <c-s>
# selection saving
map -docstring 'add selection' global normal Y <a-Z>a
define-command -docstring 'open popup shell' popup-shell %{
popup fish
}
alias global pp popup-shell
map -docstring 'popup shell' global user . ': popup-shell<ret>'
# hook -once global ClientCreate .* %{
# evaluate-commands %sh{
# if [ "$kak_buflist" != "*debug* *scratch*" ]; then
@ -202,8 +229,3 @@ map -docstring 'popup shell' global user . ': popup-shell<ret>'
# }
# }
try %{
evaluate-commands %sh{kak-lsp-diags}
map -docstring 'enable diagnostic hover' global ui "'" ': lsp-diag-hover-enable<ret>'
map -docstring 'disable diagnostic hover' global ui '"' ': lsp-diag-hover-disable<ret>'
}

View file

@ -0,0 +1,4 @@
#!/bin/sh
export EXPLAINSHELL_ENDPOINT="https://explainshell.com"
exec bash-language-server start

View file

@ -1,5 +1,12 @@
#!/bin/sh
# Hook for Taskwarrior to automaticaly sync.
# If the state has been modified, we fork into the background
# and run task sync. If the command fails, then we spawn an
# urgent desktop notification, and use sendmail to send ourselves
# an email with an error log. For this to work, sendmail must
# be configured with capability to send emails from our account.
DATA="$HOME/.local/share/task"
n=0
@ -13,7 +20,9 @@ if [ "$n" -gt 0 ]; then
errfile="$DATA/sync_hook.err"
lerrfile="$DATA/sync_hook.errl"
logfile="$DATA/sync_hook.log"
address='daniel@ficd.ca'
# shellcheck disable=SC2016
flock "$lockfile" sh -c '
task sync >>"$1" 2>"$2"
status=$?
@ -22,8 +31,8 @@ if [ "$n" -gt 0 ]; then
if command -v sendmail >/dev/null 2>&1; then
{
echo "To: daniel@ficd.ca"
echo "From: daniel@ficd.ca"
echo "To: $5"
echo "From: $5"
echo "Subject: Taskwarrior Sync Failed on $(hostname)"
echo "Date: $(date -R)"
echo ""
@ -41,9 +50,8 @@ if [ "$n" -gt 0 ]; then
exit 1
fi
' sh "$logfile" "$lerrfile" "$errfile" "$(hostname)"
' sh "$logfile" "$lerrfile" "$errfile" "$(hostname)" "$address"
} >/dev/null 2>&1 </dev/null &
fi
exit 0