diff options
Diffstat (limited to '')
| -rw-r--r-- | autoload/window.kak | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/autoload/window.kak b/autoload/window.kak index 8986914..ba1fab7 100644 --- a/autoload/window.kak +++ b/autoload/window.kak @@ -10,3 +10,21 @@ map global win j ': nop %sh{tmux select-pane -D}<ret>' -docstring 'Jump down' map global win k ': nop %sh{tmux select-pane -U}<ret>' -docstring 'Jump up' map global win l ': nop %sh{tmux select-pane -R}<ret>' -docstring 'Jump right' map global win z ': wq<ret>' + +define-command terminal-singleton -params 2.. -docstring 'terminal-singleton <name> <command> [args...]' %{ + eval %sh{ + name="$1"; shift; + open-term-win() { + printf "terminal -n '$name' env" + printf " 'KAKOUNE_SESSION=$kak_session' 'KAKOUNE_CLIENT=$kak_client'" + printf " 'GIT_EDITOR=kak -c \"$kak_session\"' 'EDITOR=kcr edit' 'VISUAL=kcr edit'" + printf " %q" "$@" + echo "" + } + focus-term-win() { + tmux select-window -t "$name" >/dev/null 2>&1 + } + + focus-term-win || open-term-win "$@"; + } +} |
