diff --git a/rc/client.kak b/rc/client.kak index 06acb6d7..cd0dfe5d 100644 --- a/rc/client.kak +++ b/rc/client.kak @@ -6,8 +6,25 @@ decl str termcmd %sh{ fi } -def new -docstring 'create a new kak client for current session' \ - -shell-params %{ nop %sh{ +def -docstring 'create a new kak client for current session' \ + -shell-params \ + new %{ nop %sh{ if [ $# -ne 0 ]; then kakoune_params="-e '$@'"; fi setsid ${kak_opt_termcmd} "kak -c ${kak_session} ${kakoune_params}" < /dev/null > /dev/null 2>&1 & }} + +def -docstring 'focus given client' \ + -shell-params -client-completion \ + focus %{ %sh{ + if [ $# -gt 1 ]; then + echo "echo -color Error 'too many arguments, use focus [client]'" + elif [ $# -eq 1 ]; then + echo "eval -client '$1' focus" + else + if [ -n "$kak_client_env_TMUX" ]; then + TMUX="$kak_client_env_TMUX" tmux select-pane -t "$kak_client_env_TMUX_PANE" > /dev/null + else + xdotool windowactivate $kak_client_env_WINDOWID > /dev/null + fi + fi +} }