From b80dbf93229fca35230c2bb014d5ea36ba7a8dd9 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Thu, 28 Jul 2016 09:17:18 +0100 Subject: Move x11.kak and tmux.kak to rc/base from rc/core --- rc/base/tmux.kak | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ rc/base/x11.kak | 46 ++++++++++++++++++++++++++++++++++++++++++++++ rc/core/tmux.kak | 53 ----------------------------------------------------- rc/core/x11.kak | 46 ---------------------------------------------- 4 files changed, 99 insertions(+), 99 deletions(-) create mode 100644 rc/base/tmux.kak create mode 100644 rc/base/x11.kak delete mode 100644 rc/core/tmux.kak delete mode 100644 rc/core/x11.kak diff --git a/rc/base/tmux.kak b/rc/base/tmux.kak new file mode 100644 index 00000000..70c5115e --- /dev/null +++ b/rc/base/tmux.kak @@ -0,0 +1,53 @@ +# http://tmux.github.io/ +# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ + +## The default behaviour for the `new` command is to open an horizontal pane in a tmux session +hook global KakBegin .* %{ + %sh{ + if [ -n "$TMUX" ]; then + echo " + alias global focus tmux-focus + alias global new tmux-new-horizontal + " + fi + } +} + +## Temporarily override the default client creation command +def -hidden -params 1.. tmux-new-impl %{ + %sh{ + tmux=${kak_client_env_TMUX:-$TMUX} + if [ -z "$tmux" ]; then + echo "echo -color Error 'This command is only available in a tmux session'" + exit + fi + tmux_args="$1" + shift + if [ $# -ne 0 ]; then kakoune_params="-e '$@'"; fi + TMUX=$tmux tmux $tmux_args "kak -c ${kak_session} ${kakoune_params}" < /dev/null > /dev/null 2>&1 & + } +} + +def tmux-new-vertical -params .. -command-completion -docstring "Create a new vertical pane in tmux" %{ + tmux-new-impl 'split-window -v' %arg{@} +} + +def tmux-new-horizontal -params .. -command-completion -docstring "Create a new horizontal pane in tmux" %{ + tmux-new-impl 'split-window -h' %arg{@} +} + +def tmux-new-window -params .. -command-completion -docstring "Create a new window in tmux" %{ + tmux-new-impl 'new-window' %arg{@} +} + +def -docstring "focus given client" \ + -params 0..1 -client-completion \ + tmux-focus %{ %sh{ + if [ $# -gt 1 ]; then + echo "echo -color Error 'too many arguments, use focus [client]'" + elif [ $# -eq 1 ]; then + printf %s\\n "eval -client '$1' focus" + elif [ -n "${kak_client_env_TMUX}" ]; then + TMUX="${kak_client_env_TMUX}" tmux select-pane -t "${kak_client_env_TMUX_PANE}" > /dev/null + fi +} } diff --git a/rc/base/x11.kak b/rc/base/x11.kak new file mode 100644 index 00000000..bf932298 --- /dev/null +++ b/rc/base/x11.kak @@ -0,0 +1,46 @@ +# termcmd should be set such as the next argument is the whole +# command line to execute +decl str termcmd %sh{ + for termcmd in 'termite -e ' \ + 'urxvt -e sh -c' \ + 'rxvt -e sh -c' \ + 'xterm -e sh -c' \ + 'roxterm -e sh -c' \ + 'mintty -e sh -c' \ + 'sakura -e ' \ + 'gnome-terminal -e ' \ + 'xfce4-terminal -e ' ; do + terminal=${termcmd%% *} + if which $terminal > /dev/null 2>&1; then + printf %s\\n "'$termcmd'" + exit + fi + done +} + +def -docstring 'create a new kak client for current session' \ + -params .. \ + -command-completion \ + x11-new %{ %sh{ + if [ -z "${kak_opt_termcmd}" ]; then + echo "echo -color Error 'termcmd option is not set'" + exit + fi + 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\'s window' \ + -params 0..1 -client-completion \ + x11-focus %{ %sh{ + if [ $# -gt 1 ]; then + echo "echo -color Error 'too many arguments, use focus [client]'" + elif [ $# -eq 1 ]; then + printf %s\\n "eval -client '$1' focus" + else + xdotool windowactivate $kak_client_env_WINDOWID > /dev/null + fi +} } + +alias global focus x11-focus +alias global new x11-new diff --git a/rc/core/tmux.kak b/rc/core/tmux.kak deleted file mode 100644 index 70c5115e..00000000 --- a/rc/core/tmux.kak +++ /dev/null @@ -1,53 +0,0 @@ -# http://tmux.github.io/ -# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ - -## The default behaviour for the `new` command is to open an horizontal pane in a tmux session -hook global KakBegin .* %{ - %sh{ - if [ -n "$TMUX" ]; then - echo " - alias global focus tmux-focus - alias global new tmux-new-horizontal - " - fi - } -} - -## Temporarily override the default client creation command -def -hidden -params 1.. tmux-new-impl %{ - %sh{ - tmux=${kak_client_env_TMUX:-$TMUX} - if [ -z "$tmux" ]; then - echo "echo -color Error 'This command is only available in a tmux session'" - exit - fi - tmux_args="$1" - shift - if [ $# -ne 0 ]; then kakoune_params="-e '$@'"; fi - TMUX=$tmux tmux $tmux_args "kak -c ${kak_session} ${kakoune_params}" < /dev/null > /dev/null 2>&1 & - } -} - -def tmux-new-vertical -params .. -command-completion -docstring "Create a new vertical pane in tmux" %{ - tmux-new-impl 'split-window -v' %arg{@} -} - -def tmux-new-horizontal -params .. -command-completion -docstring "Create a new horizontal pane in tmux" %{ - tmux-new-impl 'split-window -h' %arg{@} -} - -def tmux-new-window -params .. -command-completion -docstring "Create a new window in tmux" %{ - tmux-new-impl 'new-window' %arg{@} -} - -def -docstring "focus given client" \ - -params 0..1 -client-completion \ - tmux-focus %{ %sh{ - if [ $# -gt 1 ]; then - echo "echo -color Error 'too many arguments, use focus [client]'" - elif [ $# -eq 1 ]; then - printf %s\\n "eval -client '$1' focus" - elif [ -n "${kak_client_env_TMUX}" ]; then - TMUX="${kak_client_env_TMUX}" tmux select-pane -t "${kak_client_env_TMUX_PANE}" > /dev/null - fi -} } diff --git a/rc/core/x11.kak b/rc/core/x11.kak deleted file mode 100644 index bf932298..00000000 --- a/rc/core/x11.kak +++ /dev/null @@ -1,46 +0,0 @@ -# termcmd should be set such as the next argument is the whole -# command line to execute -decl str termcmd %sh{ - for termcmd in 'termite -e ' \ - 'urxvt -e sh -c' \ - 'rxvt -e sh -c' \ - 'xterm -e sh -c' \ - 'roxterm -e sh -c' \ - 'mintty -e sh -c' \ - 'sakura -e ' \ - 'gnome-terminal -e ' \ - 'xfce4-terminal -e ' ; do - terminal=${termcmd%% *} - if which $terminal > /dev/null 2>&1; then - printf %s\\n "'$termcmd'" - exit - fi - done -} - -def -docstring 'create a new kak client for current session' \ - -params .. \ - -command-completion \ - x11-new %{ %sh{ - if [ -z "${kak_opt_termcmd}" ]; then - echo "echo -color Error 'termcmd option is not set'" - exit - fi - 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\'s window' \ - -params 0..1 -client-completion \ - x11-focus %{ %sh{ - if [ $# -gt 1 ]; then - echo "echo -color Error 'too many arguments, use focus [client]'" - elif [ $# -eq 1 ]; then - printf %s\\n "eval -client '$1' focus" - else - xdotool windowactivate $kak_client_env_WINDOWID > /dev/null - fi -} } - -alias global focus x11-focus -alias global new x11-new -- cgit v1.2.3