diff --git a/keymaps.conf b/keymaps.conf index b73b9b5..7e6111f 100644 --- a/keymaps.conf +++ b/keymaps.conf @@ -34,21 +34,21 @@ map f2 remove_marker map f3 toggle_marker itext 2 ERROR 1 WARNING 3 PASS map f12 load_config_file /home/rootiest/.config/kitty/kitty.conf -map ctrl+shift+c copy_to_clipboard -map ctrl+shift+v paste_from_clipboard -map ctrl+shift+s paste_from_selection +map kitty_mod+c copy_to_clipboard +map kitty_mod+v paste_from_clipboard +map kitty_mod+s paste_from_selection map shift+insert paste_from_selection -map ctrl+shift+o pass_selection_to_program +map kitty_mod+o pass_selection_to_program -map ctrl+shift+right next_tab +map kitty_mod+right next_tab map ctrl+tab next_tab -map ctrl+shift+right next_tab +map kitty_mod+right next_tab map ctrl+tab next_tab -map ctrl+shift+q close_tab +map kitty_mod+q close_tab # View the scrollback buffer -map ctrl+shift+b view_scrollback -map f1 view_scrollback +#map kitty_mod+b view_scrollback +map f1 kitty_scrollback_nvim # Create a new window splitting the space used by the existing one so that # the two windows are placed one above the other @@ -60,7 +60,7 @@ map f6 launch --location=vsplit # Create a new window splitting the space used by the existing one so that # the two windows are placed side by side if the existing window is wide or -# one above the other if the existing window is tall. +one above the other if the existing window is tall. map f4 launch --location=split # Rotate the current split, changing its split axis from vertical to @@ -69,7 +69,7 @@ map f7 layout_action rotate # Open nvim in a new tab map f8 launch_tab nvim -map ctrl+shift+n launch_tab nvim +map kitty_mod+n launch_tab nvim # Move the active window in the indicated direction @@ -78,12 +78,6 @@ map shift+left move_window left map shift+right move_window right map shift+down move_window down -# Move the active window to the indicated screen edge -map ctrl+shift+up layout_action move_to_screen_edge top -map ctrl+shift+left layout_action move_to_screen_edge left -map ctrl+shift+right layout_action move_to_screen_edge right -map ctrl+shift+down layout_action move_to_screen_edge bottom - # Switch focus to the neighboring window in the indicated direction map alt+left neighboring_window left map alt+right neighboring_window right @@ -92,21 +86,21 @@ map alt+down neighboring_window down ### Kittens ### #kitty-search -map ctrl+shift+q launch --allow-remote-control kitty +kitten kitty_search/search.py @active-kitty-window-id +map kitty_mod+q launch --allow-remote-control kitty +kitten kitty_search/search.py @active-kitty-window-id ### NVim Plugins -map ctrl+j kitten pass_keys.py bottom ctrl+j -map ctrl+k kitten pass_keys.py top ctrl+k -map ctrl+h kitten pass_keys.py left ctrl+h -map ctrl+l kitten pass_keys.py right ctrl+l +map ctrl+shift+j kitten pass_keys.py neighboring_window bottom ctrl+shift+j +map ctrl+shift+k kitten pass_keys.py neighboring_window top ctrl+shift+k +map ctrl+shift+h kitten pass_keys.py neighboring_window left ctrl+shift+h +map ctrl+shift+l kitten pass_keys.py neighboring_window right ctrl+shift+l ## NVim Kitty Scrollback # Browse scrollback buffer in nvim #map kitty_mod+h kitty_scrollback_nvim --nvim-args --clean --noplugin -n -map kitty_mod+h kitty_scrollback_nvim +#map kitty_mod+b kitty_scrollback_nvim # Browse output of the last shell command in nvim #map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output --nvim-args --clean --noplugin -n -map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output +map kitty_mod+b kitty_scrollback_nvim --config ksb_builtin_last_cmd_output # Show clicked command output in nvim -mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output +mouse_map kitty_mod+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output diff --git a/navigate_kitty.py b/navigate_kitty.py new file mode 100644 index 0000000..63f0f66 --- /dev/null +++ b/navigate_kitty.py @@ -0,0 +1,16 @@ +from kittens.tui.handler import result_handler +from typing import List +from kitty.boss import Boss + + +def main(): + pass + + +directions = ["right", "left", "top", "bottom"] + + +@result_handler(no_ui=True) +def handle_result(args: List[str], result: str, target_window_id: int, boss: Boss): + if len(args) == 2 and args[1] in directions: + boss.active_tab.neighboring_window(args[1]) diff --git a/pass_keys.py b/pass_keys.py index 0beda6c..84c750d 100644 --- a/pass_keys.py +++ b/pass_keys.py @@ -3,10 +3,15 @@ import re from kittens.tui.handler import result_handler from kitty.key_encoding import KeyEvent, parse_shortcut +VIM_ID = "n?vim" -def is_window_vim(window, vim_id): + +def is_window_vim(window): fp = window.child.foreground_processes - return any(re.search(vim_id, p['cmdline'][0] if len(p['cmdline']) else '', re.I) for p in fp) + return any( + re.search(VIM_ID, p["cmdline"][0] if len(p["cmdline"]) else "", re.I) + for p in fp + ) def encode_key_mapping(window, key_mapping): @@ -31,15 +36,13 @@ def main(): @result_handler(no_ui=True) def handle_result(args, result, target_window_id, boss): - direction = args[1] - key_mapping = args[2] - vim_id = args[3] if len(args) > 3 else "n?vim" - window = boss.window_id_map.get(target_window_id) + direction = args[2] + key_mapping = args[3] if window is None: return - if is_window_vim(window, vim_id): + if is_window_vim(window): for keymap in key_mapping.split(">"): encoded = encode_key_mapping(window, keymap) window.write_to_child(encoded)