AutoYADM commit: 2025-05-29 23:42:43

This commit is contained in:
Daniel Fichtinger 2025-05-29 23:42:43 -04:00
parent 3c16ef6327
commit 635b245561
2 changed files with 88 additions and 87 deletions

View file

@ -1,87 +0,0 @@
provide-module title-bar %~
declare-option bool bar_debug false
declare-option -docstring %{
Format string passed to printf for the bufferlist.
It should be set in the global scope.
It receives two string arguments, where the first is the buffer index,
and the second is the buffer name.
Default: '[%s %s]'
} str bar_active_fmt '[%s %s]'
declare-option -docstring %{
Format string passed to printf for the bufferlist.
It should be set in the global scope.
It receives two string arguments, where the first is the buffer index,
and the second is the buffer name.
Default: '[%s %s]+'
} str bar_active_modified_fmt '[%s %s]+'
declare-option -docstring %{
Format string passed to printf for the bufferlist.
It should be set in the global scope.
It receives two string arguments, where the first is the buffer index,
and the second is the buffer name.
Default: '%s %s'
} str bar_inactive_fmt '%s %s'
# declare-option -docstring %{
# Format string passed to printf for the bufferlist.
# It should be set in the global scope.
# It receives two string arguments, where the first is the buffer index,
# and the second is the buffer name.
# Default: '%s %s+'
# } str bar_inactive_modified_fmt '%s %s+'
define-command -hidden bar-buflist %{
nop %sh{
{
if [ -z "$kak_client" ]; then
exit
fi
list=''
index=0
while read buf; do
if [ "$buf" = '*debug*' ]; then
continue
fi
index=$((index + 1))
if [ "$buf" = "$kak_bufname" ]; then
if [ "$kak_modified" = "true" ]; then
cur=$(printf "$kak_opt_bar_active_modified_fmt" "$index" "$buf")
else
cur=$(printf "$kak_opt_bar_active_fmt" "$index" "$buf")
fi
else
cur=$(printf "$kak_opt_bar_inactive_fmt" "$index" "$buf")
fi
list="$list $cur"
done <<EOF
$(printf '%s\n' "$kak_buflist" | awk '{gsub(/\*[^*]+\*|[^[:space:]]+/,"&\n"); print}')
EOF
if [ "$kak_bufname" = '*debug*' ]; then
list="$list [*debug*]"
fi
title="$list - $kak_client@[$kak_session]"
title_cmd=$(printf "eval -try-client '$kak_client' -verbatim set-option -add global ui_options %%{terminal_title=%s}" "$title")
echo "$title_cmd" | kak -p ${kak_session}
refresh_cmd=$(printf "eval -verbatim try %%{ exec -try-client '$kak_client' <c-l> }")
echo "$refresh_cmd" | kak -p ${kak_session}
if [ "$kak_opt_bar_debug" = "true" ]; then
printf 'echo -debug -- %s' "$title_cmd" | kak -p ${kak_session}
printf 'echo -debug -- %s' "$refresh_cmd" | kak -p ${kak_session}
fi
} > /dev/null 2>&1 < /dev/null &
}
}
hook global WinCreate .* bar-buflist
hook global WinClose .* bar-buflist
hook global WinDisplay .* bar-buflist
hook global BufCreate .* bar-buflist
hook global FocusIn .* bar-buflist
~

View file

@ -0,0 +1 @@
/home/fic/dev/kak-title-bar/rc/title-bar.kak

View file

@ -0,0 +1,87 @@
provide-module title-bar %~
declare-option bool bar_debug false
declare-option -docstring %{
Format string passed to printf for the bufferlist.
It should be set in the global scope.
It receives two string arguments, where the first is the buffer index,
and the second is the buffer name.
Default: '[%s %s]'
} str bar_active_fmt '[%s %s]'
declare-option -docstring %{
Format string passed to printf for the bufferlist.
It should be set in the global scope.
It receives two string arguments, where the first is the buffer index,
and the second is the buffer name.
Default: '[%s %s]+'
} str bar_active_modified_fmt '[%s %s]+'
declare-option -docstring %{
Format string passed to printf for the bufferlist.
It should be set in the global scope.
It receives two string arguments, where the first is the buffer index,
and the second is the buffer name.
Default: '%s %s'
} str bar_inactive_fmt '%s %s'
# declare-option -docstring %{
# Format string passed to printf for the bufferlist.
# It should be set in the global scope.
# It receives two string arguments, where the first is the buffer index,
# and the second is the buffer name.
# Default: '%s %s+'
# } str bar_inactive_modified_fmt '%s %s+'
define-command -hidden bar-buflist %{
nop %sh{
{
if [ -z "$kak_client" ]; then
exit
fi
list=''
index=0
while read buf; do
if [ "$buf" = '*debug*' ]; then
continue
fi
index=$((index + 1))
if [ "$buf" = "$kak_bufname" ]; then
if [ "$kak_modified" = "true" ]; then
cur=$(printf "$kak_opt_bar_active_modified_fmt" "$index" "$buf")
else
cur=$(printf "$kak_opt_bar_active_fmt" "$index" "$buf")
fi
else
cur=$(printf "$kak_opt_bar_inactive_fmt" "$index" "$buf")
fi
list="$list $cur"
done <<EOF
$(printf '%s\n' "$kak_buflist" | awk '{gsub(/\*[^*]+\*|[^[:space:]]+/,"&\n"); print}')
EOF
if [ "$kak_bufname" = '*debug*' ]; then
list="$list [*debug*]"
fi
title="$list - $kak_client@[$kak_session]"
title_cmd=$(printf "eval -try-client '$kak_client' -verbatim set-option -add global ui_options %%{terminal_title=%s}" "$title")
echo "$title_cmd" | kak -p ${kak_session}
refresh_cmd=$(printf "eval -verbatim try %%{ exec -try-client '$kak_client' <c-l> }")
echo "$refresh_cmd" | kak -p ${kak_session}
if [ "$kak_opt_bar_debug" = "true" ]; then
printf 'echo -debug -- %s' "$title_cmd" | kak -p ${kak_session}
printf 'echo -debug -- %s' "$refresh_cmd" | kak -p ${kak_session}
fi
} > /dev/null 2>&1 < /dev/null &
}
}
hook global WinCreate .* bar-buflist
hook global WinClose .* bar-buflist
hook global WinDisplay .* bar-buflist
hook global BufCreate .* bar-buflist
hook global FocusIn .* bar-buflist
~