aboutsummaryrefslogtreecommitdiff
path: root/autoload/window.kak
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-10-25 17:22:00 +0530
committerAkshay Nair <phenax5@gmail.com>2025-10-25 17:22:00 +0530
commit5d823bbd19dc8589cfacdbe51ee5260042dacab2 (patch)
treed17c2a51c3d7d3ea5ed6310e391372fe5b0be0ab /autoload/window.kak
parent593e775e9ccbdca3360f1bd0c6883c7973dcb46f (diff)
downloadkakoune-config-5d823bbd19dc8589cfacdbe51ee5260042dacab2.tar.gz
kakoune-config-5d823bbd19dc8589cfacdbe51ee5260042dacab2.zip
Add terminal singleton command + use with gitu and daffm
Diffstat (limited to 'autoload/window.kak')
-rw-r--r--autoload/window.kak18
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 "$@";
+ }
+}