AutoYADM commit: 2025-05-21 20:26:39
This commit is contained in:
parent
20b9a13713
commit
b0ef9796be
2 changed files with 36 additions and 5 deletions
|
@ -1,6 +1,11 @@
|
||||||
function kak-session -w kak --description "kakoune where sessions are derived from parent git dirs"
|
function kak-session -w kak --description "kakoune where sessions are derived from parent git dirs. First arg may be -nokakdaemon."
|
||||||
# TODO(enricozb): https://github.com/enricozb/tabs.kak/issues/12
|
# TODO(enricozb): https://github.com/enricozb/tabs.kak/issues/12
|
||||||
|
|
||||||
|
if test "$argv[1]" = -nokakdaemon
|
||||||
|
set -f nokakdaemon
|
||||||
|
set argv $argv[2..]
|
||||||
|
end
|
||||||
|
|
||||||
set files # all arguments without a `-` prefix
|
set files # all arguments without a `-` prefix
|
||||||
set flags # all arguments with a `-` prefix
|
set flags # all arguments with a `-` prefix
|
||||||
|
|
||||||
|
@ -35,6 +40,32 @@ function kak-session -w kak --description "kakoune where sessions are derived fr
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# function newsession
|
||||||
|
# if test "$argv[1]" = -nokakdaemon
|
||||||
|
# set -f nokakdaemon
|
||||||
|
# set argv $argv[2..]
|
||||||
|
# end
|
||||||
|
# set session_id $argv[1]
|
||||||
|
# set argv $argv[2..]
|
||||||
|
# if not command kak -l | rg -xqF "$session_id"
|
||||||
|
# set fifo_dir (mktemp -d --suffix=kak-init.XXXXXX)
|
||||||
|
# set fifo "$fifo_dir/fifo"
|
||||||
|
# mkfifo "$fifo"
|
||||||
|
|
||||||
|
# if not set -fq nokakdaemon
|
||||||
|
# setsid kak -d -s "$session_id" -E "cd %[$kakroot]; echo -to-file $fifo ready" &
|
||||||
|
|
||||||
|
# # once $fifo has data, the kakoune server has initialized.
|
||||||
|
# cat $fifo >/dev/null
|
||||||
|
|
||||||
|
# command rm -r "$fifo_dir"
|
||||||
|
# command kak -c "$session_id" $argv
|
||||||
|
# else
|
||||||
|
# command kak -s "$session_id" -e "cd %[$kakroot]" $argv
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
|
||||||
set kakroot (fdup '\.kakroot|\.kakrc.local|\.local.kakrc|kakrc' $files[1])
|
set kakroot (fdup '\.kakroot|\.kakrc.local|\.local.kakrc|kakrc' $files[1])
|
||||||
if test -n "$kakroot"
|
if test -n "$kakroot"
|
||||||
set session_id (echo -n "$(path basename "$kakroot")" | tr --complement '[:alpha:]_-' '-')
|
set session_id (echo -n "$(path basename "$kakroot")" | tr --complement '[:alpha:]_-' '-')
|
||||||
|
@ -48,7 +79,7 @@ function kak-session -w kak --description "kakoune where sessions are derived fr
|
||||||
set fifo "$fifo_dir/fifo"
|
set fifo "$fifo_dir/fifo"
|
||||||
mkfifo "$fifo"
|
mkfifo "$fifo"
|
||||||
|
|
||||||
if not set -gq nokakdaemon
|
if not set -fq nokakdaemon
|
||||||
setsid kak -d -s "$session_id" -E "cd %[$kakroot]; echo -to-file $fifo ready" &
|
setsid kak -d -s "$session_id" -E "cd %[$kakroot]; echo -to-file $fifo ready" &
|
||||||
|
|
||||||
# once $fifo has data, the kakoune server has initialized.
|
# once $fifo has data, the kakoune server has initialized.
|
||||||
|
@ -80,11 +111,11 @@ function kak-session -w kak --description "kakoune where sessions are derived fr
|
||||||
set fifo "$fifo_dir/fifo"
|
set fifo "$fifo_dir/fifo"
|
||||||
mkfifo "$fifo"
|
mkfifo "$fifo"
|
||||||
|
|
||||||
if not set -gq nokakdaemon
|
if not set -fq nokakdaemon
|
||||||
setsid kak -d -s "$session_id" -E "cd %[$git_dir]; echo -to-file $fifo ready" &
|
setsid kak -d -s "$session_id" -E "cd %[$git_dir]; echo -to-file $fifo ready" &
|
||||||
cat $fifo >/dev/null
|
cat $fifo >/dev/null
|
||||||
command rm -r "$fifo_dir"
|
command rm -r "$fifo_dir"
|
||||||
command kak -c "$session_id" -e 'try%{ delete-buffer *scratch* }' $flags $files
|
command kak -c "$session_id" -e 'try %{ delete-buffer *scratch* }' $flags $files
|
||||||
else
|
else
|
||||||
command kak -s "$session_id" -e "cd %[$git_dir]" $flags $files
|
command kak -s "$session_id" -e "cd %[$git_dir]" $flags $files
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
function kakrc --description "Edit kakrc. -c to force a new session."
|
function kakrc --description "Edit kakrc. -c to force a new session."
|
||||||
if test "$argv[1]" != -c || test "$argv[1]" != new
|
if test "$argv[1]" != -c || test "$argv[1]" != new
|
||||||
kak-session ~/.config/kak/kakrc
|
kak-session -nokakdaemon ~/.config/kak/kakrc
|
||||||
else
|
else
|
||||||
kak -e 'cd ~/.config/kak' ~/.config/kak/kakrc
|
kak -e 'cd ~/.config/kak' ~/.config/kak/kakrc
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue