From 2140ab51deed88e90eafebf9520fa5f9995dc7c9 Mon Sep 17 00:00:00 2001 From: twells46 <173561638+twells46@users.noreply.github.com> Date: Wed, 31 Dec 2025 13:28:05 -0600 Subject: Migrate from stow --- dot_config/kak/autoload/rc/windowing/kitty.kak | 84 ++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 dot_config/kak/autoload/rc/windowing/kitty.kak (limited to 'dot_config/kak/autoload/rc/windowing/kitty.kak') diff --git a/dot_config/kak/autoload/rc/windowing/kitty.kak b/dot_config/kak/autoload/rc/windowing/kitty.kak new file mode 100644 index 0000000..a81f969 --- /dev/null +++ b/dot_config/kak/autoload/rc/windowing/kitty.kak @@ -0,0 +1,84 @@ +# https://sw.kovidgoyal.net/kitty/index.html +# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ + +provide-module kitty %{ + +# ensure that we're running on kitty +evaluate-commands %sh{ + [ -z "${kak_opt_windowing_modules}" ] || [ "$TERM" = "xterm-kitty" ] || echo 'fail Kitty not detected' +} + +declare-option -docstring %{window type that kitty creates on new and repl calls (window|os-window)} str kitty_window_type window + +define-command kitty-terminal-window -params 1.. -docstring ' +kitty-terminal-window []: create a new terminal as a kitty window +The program passed as argument will be executed in the new terminal' \ +%{ + nop %sh{ + match="" + if [ -n "$kak_client_env_KITTY_WINDOW_ID" ]; then + match="--match=window_id:$kak_client_env_KITTY_WINDOW_ID" + fi + + listen="" + if [ -n "$kak_client_env_KITTY_LISTEN_ON" ]; then + listen="--to=$kak_client_env_KITTY_LISTEN_ON" + fi + + kitty @ $listen launch --no-response --type="$kak_opt_kitty_window_type" --cwd="$PWD" $match "$@" + } +} +complete-command kitty-terminal-window shell + +define-command kitty-terminal-tab -params 1.. -docstring ' +kitty-terminal-tab []: create a new terminal as kitty tab +The program passed as argument will be executed in the new terminal' \ +%{ + nop %sh{ + match="" + if [ -n "$kak_client_env_KITTY_WINDOW_ID" ]; then + match="--match=window_id:$kak_client_env_KITTY_WINDOW_ID" + fi + + listen="" + if [ -n "$kak_client_env_KITTY_LISTEN_ON" ]; then + listen="--to=$kak_client_env_KITTY_LISTEN_ON" + fi + + kitty @ $listen launch --no-response --type=tab --cwd="$PWD" $match "$@" + } +} +complete-command kitty-terminal-tab shell + +define-command kitty-focus -params ..1 -docstring ' +kitty-focus []: focus the given client +If no client is passed then the current one is used' \ +%{ + evaluate-commands %sh{ + if [ $# -eq 1 ]; then + printf "evaluate-commands -client '%s' focus" "$1" + else + match="" + if [ -n "$kak_client_env_KITTY_WINDOW_ID" ]; then + match="--match=id:$kak_client_env_KITTY_WINDOW_ID" + fi + + listen="" + if [ -n "$kak_client_env_KITTY_LISTEN_ON" ]; then + listen="--to=$kak_client_env_KITTY_LISTEN_ON" + fi + + kitty @ $listen focus-window --no-response $match + fi + } +} +complete-command -menu kitty-focus client + +alias global focus kitty-focus + +# deprecated +define-command -hidden kitty-terminal -params 1.. %{ + kitty-terminal-window %arg{@} +} + +} -- cgit v1.2.3