theme = "catppuccin_frappe" # ─── Editor ───────────────────────────────────────────────────────────────── [editor] clipboard-provider = "wayland" # use wl-clipboard for clipboard I/O default-yank-register = "+" # make y/Y/p/P/t use the system clipboard register # ─── Normal mode ──────────────────────────────────────────────────────────── [keys.normal] # Movement: wasd w = "move_visual_line_up" a = "move_char_left" s = "move_visual_line_down" d = "move_char_right" # Insert before / after cursor v = "insert_mode" # insert before cursor b = "append_mode" # insert after cursor V = "select_mode" # enter select/extend mode ("v" was repurposed) # Editing o = "open_below" O = "open_above" x = "extend_line_below" # select current line (repeat to extend down) J = "join_selections" t = "delete_selection" # t: delete current selection (yanks) ">" = "indent" "<" = "unindent" C-z = "undo" C-y = "redo" C-s = ":w" # Ctrl+s: save file # Search "/" = "search" n = "search_next" N = "search_prev" # Cursor stack & deletes (shift layer) W = "copy_selection_on_prev_line" # Shift+w: add cursor above S = "copy_selection_on_next_line" # Shift+s: add cursor below X = ["extend_line_below", "delete_selection"] # Shift+x: delete current line (yanks) ";" = "keep_primary_selection" # collapse multi-cursors to one (primary) "S-r" = "select_regex" "S-q" = "extend_to_line_start" # Shift+q: extend selection to start of line "S-e" = "extend_to_line_end" # Shift+e: extend selection to end of line "S-a" = "move_prev_word_start" # Shift+a: jump left one word "S-d" = "move_next_word_start" # Shift+d: jump right one word Y = "yank" # Shift+y: copy selection to system clipboard "C-S-c" = "yank" # Ctrl+Shift+c: copy (kitty intercepts this key, use Y instead) "C-S-v" = "paste_after" # Ctrl+Shift+v: paste (kitty handles this key) # ─── Goto mode (g prefix) ─────────────────────────────────────────────────── [keys.normal.g] g = "goto_file_start" # gg -> start of file; {num}gg -> jump to that line e = "goto_last_line" # ge -> end of file h = "goto_line_start" # gh -> start of line l = "goto_line_end" # gl -> end of line w = "goto_word" # gw -> word label jump # ─── View mode (z prefix) ─────────────────────────────────────────────────── [keys.normal.z] z = "align_view_center" # zz -> center cursor on screen # ─── Insert mode ──────────────────────────────────────────────────────────── [keys.insert] # ─── Select / extend mode (entered via V) ─────────────────────────────────── [keys.select] # wasd movement consistent with normal mode w = "extend_visual_line_up" a = "extend_char_left" s = "extend_visual_line_down" d = "extend_char_right" "S-a" = "extend_prev_word_start" # Shift+a: extend to previous word "S-d" = "extend_next_word_start" # Shift+d: extend to next word "S-q" = "extend_to_line_start" # Shift+q: extend selection to start of line "S-e" = "extend_to_line_end" # Shift+e: extend selection to end of line t = "delete_selection" # t: delete current selection (yanks to clipboard) Y = "yank" # Shift+y: copy selection to system clipboard