From 215dc21512c2ea40620cc28ccef3dd9e77685725 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Mon, 9 Nov 2026 15:41:24 +0100 Subject: modules/fish: Reorganize the keybindings Insert and Default modes are now more or less how I want them. --- modules/by-name/fi/fish/keymappings.nix | 1172 -------------------- modules/by-name/fi/fish/keymappings/default.nix | 99 ++ .../by-name/fi/fish/keymappings/default_mode.nix | 469 ++++++++ modules/by-name/fi/fish/keymappings/insert.nix | 146 +++ modules/by-name/fi/fish/keymappings/operator.nix | 99 ++ modules/by-name/fi/fish/keymappings/visual.nix | 306 +++++ modules/by-name/fi/fish/module.nix | 2 +- 7 files changed, 1120 insertions(+), 1173 deletions(-) delete mode 100644 modules/by-name/fi/fish/keymappings.nix create mode 100644 modules/by-name/fi/fish/keymappings/default.nix create mode 100644 modules/by-name/fi/fish/keymappings/default_mode.nix create mode 100644 modules/by-name/fi/fish/keymappings/insert.nix create mode 100644 modules/by-name/fi/fish/keymappings/operator.nix create mode 100644 modules/by-name/fi/fish/keymappings/visual.nix (limited to 'modules/by-name') diff --git a/modules/by-name/fi/fish/keymappings.nix b/modules/by-name/fi/fish/keymappings.nix deleted file mode 100644 index cb4064c6..00000000 --- a/modules/by-name/fi/fish/keymappings.nix +++ /dev/null @@ -1,1172 +0,0 @@ -{lib, ...}: -lib.fix (self: let - fromInsert = key: self.insert."${key}".cmd; - - escPlus = key: ''\e\[${key}''; -in { - "operator" = { - "escape" = { - cmd = "fish_vi_operator_cancel"; - }; - "F" = { - cmd = ""; - sets_mode_to = "F"; - }; - "d" = { - cmd = "fish_vi_exec_motion --linewise"; - }; - "e" = { - cmd = "fish_vi_exec_motion forward-word-end"; - }; - "j" = { - cmd = "fish_vi_exec_motion down-line"; - }; - "k" = { - cmd = "fish_vi_exec_motion up-line"; - }; - "7" = { - cmd = "fish_vi_arg_digit 7"; - }; - "h" = { - cmd = "fish_vi_exec_motion backward-char"; - }; - "B" = { - cmd = "fish_vi_exec_motion backward-bigword"; - }; - "9" = { - cmd = "fish_vi_arg_digit 9"; - }; - "5" = { - cmd = "fish_vi_arg_digit 5"; - }; - "E" = { - cmd = "fish_vi_exec_motion forward-bigword-end"; - }; - "~" = { - cmd = "fish_vi_exec_motion --linewise"; - }; - "4" = { - cmd = "fish_vi_arg_digit 4"; - }; - "comma" = { - cmd = "fish_vi_exec_motion repeat-jump-reverse"; - }; - "^" = { - cmd = "fish_vi_exec_motion beginning-of-line"; - }; - "ctrl-\\[" = { - cmd = "fish_vi_operator_cancel"; - }; - ";" = { - cmd = "fish_vi_exec_motion repeat-jump"; - }; - "c" = { - cmd = "fish_vi_exec_motion --linewise"; - }; - "T" = { - cmd = ""; - sets_mode_to = "T"; - }; - "t" = { - cmd = ""; - sets_mode_to = "t"; - }; - "2" = { - cmd = "fish_vi_arg_digit 2"; - }; - "W" = { - cmd = "fish_vi_exec_motion forward-bigword-vi"; - }; - "$" = { - cmd = "fish_vi_exec_motion end-of-line"; - }; - "0" = { - cmd = "fish_vi_exec_motion beginning-of-line"; - }; - "8" = { - cmd = "fish_vi_arg_digit 8"; - }; - "g" = { - "E" = { - cmd = "fish_vi_exec_motion backward-bigword-end"; - }; - "e" = { - cmd = "fish_vi_exec_motion backward-word-end"; - }; - }; - "w" = { - cmd = "fish_vi_exec_motion forward-word-vi"; - }; - "b" = { - cmd = "fish_vi_exec_motion backward-word"; - }; - "6" = { - cmd = "fish_vi_arg_digit 6"; - }; - "y" = { - cmd = "fish_vi_exec_motion --linewise"; - }; - "l" = { - cmd = "fish_vi_exec_motion forward-char"; - }; - "1" = { - cmd = "fish_vi_arg_digit 1"; - }; - "f" = { - cmd = ""; - sets_mode_to = "f"; - }; - "3" = { - cmd = "fish_vi_arg_digit 3"; - }; - }; - "insert" = { - "alt-up" = { - cmd = "history-token-search-backward"; - }; - "alt-v" = { - cmd = "edit_command_buffer"; - }; - "pageup" = { - cmd = "beginning-of-history"; - }; - ">" = { - cmd = ["self-insert" "expand-abbr"]; - }; - "left" = { - cmd = "backward-char"; - }; - ${escPlus "1;9C"} = { - cmd = "nextd-or-forward-word"; - }; - "ctrl-k" = { - cmd = "kill-line"; - }; - "&" = { - cmd = ["self-insert" "expand-abbr"]; - }; - "shift-delete" = { - cmd = ["history-delete" "or" "backward-delete-char"]; - }; - "alt-l" = { - cmd = "__fish_list_current_token"; - }; - "shift-tab" = { - cmd = "complete-and-search"; - }; - "space" = { - cmd = ["self-insert" "expand-abbr"]; - }; - "up" = { - cmd = "up-or-search"; - }; - "alt-#" = { - cmd = "__fish_toggle_comment_commandline"; - }; - "tab" = { - cmd = "complete"; - }; - "alt-h" = { - cmd = "__fish_man_page"; - }; - ${escPlus "1;9A"} = { - cmd = "history-token-search-backward"; - }; - "ctrl-u" = { - cmd = "backward-kill-line"; - }; - "shift-backspace" = { - cmd = "backward-delete-char"; - }; - "alt-enter" = { - cmd = [ - ''commandline -i \n (commandline --search-field >/dev/null && echo --search-field)'' - "expand-abbr" - ]; - }; - "ctrl-w" = { - cmd = "backward-kill-path-component"; - }; - "ctrl-right" = { - cmd = "forward-token"; - }; - "pagedown" = { - cmd = "end-of-history"; - }; - "alt-down" = { - cmd = "history-token-search-forward"; - }; - "down" = { - cmd = "down-or-search"; - }; - "ctrl-n" = { - cmd = "accept-autosuggestion"; - }; - "enter" = { - cmd = "execute"; - }; - "ctrl-m" = { - cmd = "execute"; - }; - "shift-space" = { - cmd = [ - '' - commandline -i " " (commandline --search-field >/dev/null && echo --search-field) - '' - "expand-abbr" - ]; - }; - "ctrl-s" = { - cmd = "pager-toggle-search"; - }; - "ctrl-i" = { - cmd = "complete"; - }; - "shift-right" = { - cmd = "forward-bigword"; - }; - "end" = { - cmd = "end-of-line"; - }; - ")" = { - cmd = ["self-insert" "expand-abbr"]; - }; - "ctrl-x" = { - cmd = "fish_clipboard_copy"; - }; - ${escPlus "1;9D"} = { - cmd = "prevd-or-backward-word"; - }; - "alt-e" = { - cmd = "edit_command_buffer"; - }; - "alt-p" = { - cmd = "__fish_paginate"; - }; - "f1" = { - cmd = "__fish_man_page"; - }; - "shift-left" = { - cmd = "backward-bigword"; - }; - "ctrl-l" = { - cmd = [ - "status test-terminal-feature scroll-content-up && commandline -f scrollback-push" - "clear-screen" - ]; - }; - "alt-y" = { - cmd = "yank-pop"; - }; - "<" = { - cmd = ["self-insert" "expand-abbr"]; - }; - "alt-w" = { - cmd = "__fish_whatis_current_token"; - }; - "right" = { - cmd = "forward-char"; - }; - "shift-enter" = { - cmd = [ - ''commandline -i \n (commandline --search-field >/dev/null && echo --search-field)'' - "expand-abbr" - ]; - }; - ${escPlus "1;9B"} = { - cmd = "history-token-search-forward"; - }; - "|" = { - cmd = ["self-insert" "expand-abbr"]; - }; - "alt-b" = { - cmd = "prevd-or-backward-word"; - }; - "ctrl-enter" = { - cmd = "execute"; - }; - "alt-f" = { - cmd = "nextd-or-forward-word"; - }; - "alt-s" = { - cmd = '' - for cmd in sudo doas please run0; - if command -q $cmd; - fish_commandline_prepend $cmd; - break; - end; - end - ''; - }; - "ctrl-space" = { - cmd = '' - test -n "$(commandline)" - && commandline -i " " (commandline --search-field >/dev/null && echo --search-field) - ''; - }; - "ctrl-left" = { - cmd = "backward-token"; - }; - "ctrl-y" = { - cmd = "yank"; - }; - "alt-." = { - cmd = "history-token-search-backward"; - }; - "ctrl-j" = { - cmd = "execute"; - }; - "alt-left" = { - cmd = "prevd-or-backward-word"; - }; - "ctrl-h" = { - cmd = "backward-delete-char"; - }; - "alt-o" = { - cmd = "__fish_preview_current_file"; - }; - "delete" = { - cmd = "delete-char"; - }; - "" = { - cmd = "self-insert"; - }; - "ctrl-d" = { - cmd = "delete-or-exit"; - }; - "alt-d" = { - cmd = '' - if test "$(commandline; printf .)" = "\n."; - __fish_echo dirh; - else; - commandline -f kill-word; - end - ''; - }; - "alt-right" = { - cmd = "nextd-or-forward-word"; - }; - "ctrl-v" = { - cmd = "fish_clipboard_paste"; - }; - "home" = { - cmd = "beginning-of-line"; - }; - ";" = { - cmd = ["self-insert" "expand-abbr"]; - }; - "backspace" = { - cmd = "backward-delete-char"; - }; - "ctrl-c" = { - cmd = "clear-commandline"; - }; - "escape" = { - cmd = '' - if commandline -P - commandline -f cancel - else - set fish_bind_mode default - if test (count (commandline --cut-at-cursor | tail -c2)) != 2 - commandline -f backward-char - end - commandline -f repaint-mode - end - ''; - }; - "ctrl-\\[" = self.insert.escape; - }; - "default" = { - # ${escPlus "1;9A"} = {cmd = "history-token-search-backward";}; - # ${escPlus "1;9B"} = {cmd = "history-token-search-forward";}; - # ${escPlus "1;9C"} = {cmd = "nextd-or-forward-word";}; - # ${escPlus "1;9D"} = {cmd = "prevd-or-backward-word";}; - - "down" = {cmd = "down-or-search";}; - "ctrl-y" = {cmd = "yank";}; - "ctrl-left" = {cmd = "backward-token";}; - "alt-v" = {cmd = "edit_command_buffer";}; - "ctrl-a" = {cmd = "fish_vi_inc";}; - "ctrl-u" = {cmd = "backward-kill-line";}; - "ctrl-x" = {cmd = "fish_vi_dec";}; - "ctrl-r" = {cmd = "redo";}; - "delete" = {cmd = fromInsert "delete";}; - "alt-d" = {cmd = fromInsert "alt-d";}; - "alt-l" = {cmd = fromInsert "alt-l";}; - "alt-f" = {cmd = fromInsert "alt-f";}; - "right" = {cmd = fromInsert "right";}; - "alt-s" = {cmd = fromInsert "alt-s";}; - "alt-w" = {cmd = fromInsert "alt-w";}; - "ctrl-l" = {cmd = fromInsert "ctrl-l";}; - "ctrl-v" = {cmd = fromInsert "ctrl-v";}; - "ctrl-h" = {cmd = "backward-char";}; - "backspace" = {cmd = "backward-char";}; - "end" = {cmd = fromInsert "end";}; - "alt-p" = {cmd = fromInsert "alt-p";}; - "alt-up" = {cmd = fromInsert "alt-up";}; - "ctrl-m" = { - cmd = fromInsert "ctrl-m"; - sets_mode_to = "insert"; - }; - "alt-h" = {cmd = fromInsert "alt-h";}; - "alt-left" = {cmd = fromInsert "alt-left";}; - "tab" = {cmd = fromInsert "tab";}; - "ctrl-d" = {cmd = fromInsert "ctrl-d";}; - "left" = {cmd = fromInsert "left";}; - "pageup" = {cmd = fromInsert "pageup";}; - "ctrl-w" = {cmd = fromInsert "ctrl-w";}; - "alt-down" = {cmd = fromInsert "alt-down";}; - "alt-b" = {cmd = fromInsert "alt-b";}; - "alt-right" = {cmd = fromInsert "alt-right";}; - "alt-y" = {cmd = fromInsert "alt-y";}; - "ctrl-\\[" = {cmd = "set -g __fish_vi_count";}; - "ctrl-i" = {cmd = fromInsert "ctrl-i";}; - "home" = {cmd = fromInsert "home";}; - "ctrl-s" = {cmd = fromInsert "ctrl-s";}; - "shift-left" = {cmd = fromInsert "shift-left";}; - "escape" = {cmd = "set -g __fish_vi_count";}; - "alt-e" = {cmd = fromInsert "alt-e";}; - "pagedown" = {cmd = fromInsert "pagedown";}; - "shift-tab" = {cmd = fromInsert "shift-tab";}; - "shift-delete" = {cmd = fromInsert "shift-delete";}; - "shift-right" = {cmd = fromInsert "shift-right";}; - "ctrl-k" = {cmd = fromInsert "ctrl-k";}; - "alt-." = {cmd = "history-token-search-backward";}; - "ctrl-right" = {cmd = "forward-token";}; - "ctrl-c" = { - cmd = ["clear-commandline" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "alt-o" = {cmd = "__fish_preview_current_file";}; - - "x" = {cmd = "__fish_vi_delete_char";}; - "D" = {cmd = "kill-line";}; - "j" = { - cmd = "fish_vi_run_count down-or-search"; - }; - "f" = {cmd = "forward-jump";}; - "s" = { - cmd = ["delete-char" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "%" = {cmd = "jump-to-matching-bracket";}; - "k" = {cmd = "fish_vi_run_count up-or-search";}; - ";" = {cmd = "repeat-jump";}; - "P" = {cmd = "yank";}; - ":" = { - "q" = {cmd = "exit";}; - }; - "5" = {cmd = "fish_vi_arg_digit 5";}; - "alt-#" = {cmd = "__fish_toggle_comment_commandline";}; - "up" = {cmd = "up-or-search";}; - "S" = { - cmd = ["kill-inner-line" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "ctrl-j" = { - cmd = "execute"; - sets_mode_to = "insert"; - }; - "e" = {cmd = "fish_vi_run_count forward-word-end";}; - "]" = {cmd = "history-token-search-forward";}; - "b" = {cmd = "fish_vi_run_count backward-word";}; - "r" = { - cmd = "repaint-mode"; - sets_mode_to = "replace_one"; - }; - "enter" = { - cmd = "execute"; - sets_mode_to = "insert"; - }; - "f1" = {cmd = fromInsert "f1";}; - "\"" = { - "+" = { - "P" = {cmd = "fish_clipboard_paste";}; - "y" = { - "y" = {cmd = "fish_clipboard_copy";}; - }; - "p" = { - cmd = [ - "set -g fish_cursor_end_mode exclusive" - "forward-char" - "set -g fish_cursor_end_mode inclusive" - "fish_clipboard_paste" - ]; - }; - "Y" = {cmd = "fish_clipboard_copy";}; - }; - "*" = { - "p" = { - cmd = [ - "set -g fish_cursor_end_mode exclusive" - "forward-char" - "set -g fish_cursor_end_mode inclusive" - "fish_clipboard_paste" - ]; - }; - "P" = {cmd = "fish_clipboard_paste";}; - "Y" = {cmd = "fish_clipboard_copy";}; - "y" = { - "y" = {cmd = "fish_clipboard_copy";}; - }; - }; - }; - "t" = {cmd = "forward-jump-till";}; - "~" = { - cmd = ["togglecase-char" "forward-single-char"]; - }; - "i" = { - cmd = "repaint-mode"; - sets_mode_to = "insert"; - }; - "9" = {cmd = "fish_vi_arg_digit 9";}; - "4" = {cmd = "fish_vi_arg_digit 4";}; - "l" = {cmd = "fish_vi_run_count forward-char";}; - "T" = {cmd = "backward-jump-till";}; - "/" = { - cmd = ["history-pager" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "8" = {cmd = "fish_vi_arg_digit 8";}; - "a" = { - cmd = [ - "set fish_cursor_end_mode exclusive" - "forward-single-char" - "repaint-mode" - ]; - sets_mode_to = "insert"; - }; - "R" = { - cmd = "repaint-mode"; - sets_mode_to = "replace"; - }; - "K" = {cmd = "man (commandline -t) 2>/dev/null; or echo -n \\a";}; - "G" = {cmd = "end-of-buffer";}; - "[" = {cmd = "history-token-search-backward";}; - "o" = { - cmd = [ - "set fish_cursor_end_mode exclusive" - "insert-line-under" - "repaint-mode" - ]; - sets_mode_to = "insert"; - }; - "W" = {cmd = "fish_vi_run_count forward-bigword-vi";}; - "w" = {cmd = "fish_vi_run_count forward-word-vi";}; - "6" = {cmd = "fish_vi_arg_digit 6";}; - "comma" = {cmd = "repeat-jump-reverse";}; - "0" = { - cmd = '' - if test -n "$__fish_vi_count"; - fish_vi_arg_digit 0; - else; - commandline -f beginning-of-line; - end - ''; - }; - "^" = {cmd = "beginning-of-line";}; - "d" = { - "$" = {cmd = "kill-line";}; - "a" = { - "w" = {cmd = "kill-a-word";}; - "b" = { - cmd = [ - "jump-to-matching-bracket" - "and" - "jump-to-matching-bracket" - "and" - "begin-selection" - "jump-to-matching-bracket" - "kill-selection" - "end-selection" - ]; - }; - "W" = {cmd = "kill-a-bigword";}; - }; - "i" = { - "w" = {cmd = "kill-inner-word";}; - "W" = {cmd = "kill-inner-bigword";}; - "b" = { - cmd = [ - "jump-till-matching-bracket" - "and" - "jump-till-matching-bracket" - "and" - "begin-selection" - "jump-till-matching-bracket" - "kill-selection" - "end-selection" - ]; - }; - }; - "comma" = { - cmd = [ - "begin-selection" - "repeat-jump-reverse" - "kill-selection" - "end-selection" - ]; - }; - ";" = {cmd = ["begin-selection" "repeat-jump" "kill-selection" "end-selection"];}; - "0" = {cmd = "backward-kill-line";}; - "^" = {cmd = "backward-kill-line";}; - }; - "1" = {cmd = "fish_vi_arg_digit 1";}; - "F" = {cmd = "backward-jump";}; - "Y" = {cmd = ["kill-whole-line" "yank"];}; - "E" = {cmd = "fish_vi_run_count forward-bigword-end";}; - "3" = {cmd = "fish_vi_arg_digit 3";}; - "J" = { - cmd = ["end-of-line" "delete-char"]; - }; - "u" = {cmd = "undo";}; - "c" = { - "^" = { - cmd = ["backward-kill-line" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "i" = { - "w" = { - cmd = ["kill-inner-word" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "W" = { - cmd = ["kill-inner-bigword" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "b" = { - cmd = [ - "jump-till-matching-bracket" - "and" - "jump-till-matching-bracket" - "and" - "begin-selection" - "jump-till-matching-bracket" - "kill-selection" - "end-selection" - ]; - sets_mode_to = "insert"; - }; - }; - "a" = { - "W" = { - cmd = ["kill-a-bigword" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "w" = { - cmd = ["kill-a-word" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "b" = { - cmd = [ - "jump-till-matching-bracket" - "and" - "jump-till-matching-bracket" - "and" - "begin-selection" - "jump-to-matching-bracket" - "kill-selection" - "end-selection" - ]; - sets_mode_to = "insert"; - }; - }; - "$" = { - cmd = ["kill-line" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "0" = { - cmd = ["backward-kill-line" "repaint-mode"]; - sets_mode_to = "insert"; - }; - }; - "_" = {cmd = "beginning-of-line";}; - "A" = { - cmd = [ - "set fish_cursor_end_mode exclusive" - "end-of-line" - "repaint-mode" - ]; - sets_mode_to = "insert"; - }; - "I" = { - cmd = ["beginning-of-line" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "$" = {cmd = "end-of-line";}; - "X" = {cmd = "__fish_vi_backward_delete_char";}; - "B" = {cmd = "fish_vi_run_count backward-bigword";}; - "y" = { - "0" = {cmd = ["backward-kill-line" "yank"];}; - "i" = { - "W" = {cmd = ["kill-inner-bigword" "yank"];}; - "w" = {cmd = ["kill-inner-word" "yank"];}; - "b" = { - cmd = [ - "jump-till-matching-bracket" - "and" - "jump-till-matching-bracket" - "and" - "begin-selection" - "jump-till-matching-bracket" - "fish_vi_yank_selection" - "end-selection" - ]; - }; - }; - "a" = { - "W" = {cmd = ["kill-a-bigword" "yank"];}; - "b" = { - cmd = [ - "jump-till-matching-bracket" - "and" - "jump-till-matching-bracket" - "and" - "begin-selection" - "jump-to-matching-bracket" - "fish_vi_yank_selection" - "end-selection" - ]; - }; - "w" = {cmd = ["kill-a-word" "yank"];}; - }; - "^" = {cmd = ["backward-kill-line" "yank"];}; - "$" = {cmd = ["kill-line" "yank"];}; - }; - "p" = { - cmd = [ - "set -g fish_cursor_end_mode exclusive" - "forward-char" - "set -g fish_cursor_end_mode inclusive" - "yank" - ]; - }; - "#" = {cmd = "__fish_toggle_comment_commandline";}; - "v" = { - cmd = ["begin-selection" "repaint-mode"]; - sets_mode_to = "visual"; - }; - "O" = { - cmd = ["set fish_cursor_end_mode exclusive" "insert-line-over" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "2" = {cmd = "fish_vi_arg_digit 2";}; - "g" = { - "g" = {cmd = "beginning-of-buffer";}; - "^" = {cmd = "beginning-of-line";}; - "~" = {cmd = "fish_vi_start_operator swap-case";}; - "u" = {cmd = "downcase-word";}; - "U" = {cmd = "upcase-word";}; - "$" = {cmd = "end-of-line";}; - "E" = {cmd = "fish_vi_run_count backward-bigword-end";}; - "p" = {cmd = "yank-pop";}; - "e" = {cmd = "fish_vi_run_count backward-word-end";}; - }; - "7" = {cmd = "fish_vi_arg_digit 7";}; - "C" = { - cmd = ["kill-line" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "h" = {cmd = "fish_vi_run_count backward-char";}; - }; - "visual" = { - "alt-down" = { - cmd = "history-token-search-forward"; - }; - "alt-h" = { - cmd = "__fish_man_page"; - }; - "l" = { - cmd = "forward-char"; - }; - "T" = { - cmd = "backward-jump-till"; - }; - "e" = { - cmd = "forward-word-end"; - }; - "right" = { - cmd = "forward-char"; - }; - "t" = { - cmd = "forward-jump-till"; - }; - "s" = { - cmd = ["kill-selection" "end-selection" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "alt-#" = { - cmd = "__fish_toggle_comment_commandline"; - }; - "_" = { - cmd = "beginning-of-line"; - }; - "%" = { - cmd = "jump-to-matching-bracket"; - }; - "ctrl-s" = { - cmd = "pager-toggle-search"; - }; - "ctrl-w" = { - cmd = "backward-kill-path-component"; - }; - "alt-o" = { - cmd = "__fish_preview_current_file"; - }; - "left" = { - cmd = "backward-char"; - }; - "shift-left" = { - cmd = "backward-bigword"; - }; - "alt-p" = { - cmd = "__fish_paginate"; - }; - "F" = { - cmd = "backward-jump"; - }; - "ctrl-left" = { - cmd = "backward-token"; - }; - "b" = { - cmd = "backward-word"; - }; - "f1" = { - cmd = "__fish_man_page"; - }; - "shift-delete" = { - cmd = ["history-delete" "or" "backward-delete-char"]; - }; - "\"" = { - "+" = { - "y" = { - cmd = ["fish_clipboard_copy; commandline -f end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - }; - "*" = { - "y" = { - cmd = ["fish_clipboard_copy; commandline -f end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - }; - }; - "shift-tab" = { - cmd = "complete-and-search"; - }; - "alt-b" = { - cmd = "prevd-or-backward-word"; - }; - "#" = { - cmd = "__fish_toggle_comment_commandline"; - }; - "~" = { - cmd = ["togglecase-selection" "end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - "y" = { - cmd = ["fish_vi_yank_selection" "end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - "f" = { - cmd = "forward-jump"; - }; - "x" = { - cmd = ["kill-selection" "end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - "X" = { - cmd = ["kill-whole-line" "end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - "alt-y" = { - cmd = "yank-pop"; - }; - "$" = { - cmd = "end-of-line"; - }; - ";" = { - cmd = "repeat-jump"; - }; - "W" = { - cmd = "forward-bigword-vi"; - }; - "w" = { - cmd = "forward-word-vi"; - }; - "j" = { - cmd = "down-line"; - }; - "k" = { - cmd = "up-line"; - }; - "end" = { - cmd = "end-of-line"; - }; - "down" = { - cmd = "down-or-search"; - }; - "alt-up" = { - cmd = "history-token-search-backward"; - }; - "i" = { - cmd = ["end-selection" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "g" = { - "^" = { - cmd = "beginning-of-line"; - }; - "e" = { - cmd = "backward-word-end"; - }; - "$" = { - cmd = "end-of-line"; - }; - "U" = { - cmd = ["upcase-selection" "end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - "u" = { - cmd = ["downcase-selection" "end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - "E" = { - cmd = "backward-bigword-end"; - }; - }; - "I" = { - cmd = ["end-selection" "beginning-of-line" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "alt-." = { - cmd = "history-token-search-backward"; - }; - "home" = { - cmd = "beginning-of-line"; - }; - "alt-l" = { - cmd = "__fish_list_current_token"; - }; - "ctrl-x" = { - cmd = "fish_clipboard_copy"; - }; - "alt-s" = { - cmd = '' - for cmd in sudo doas please run0; - if command -q $cmd; - fish_commandline_prepend $cmd; - break; - end; - end - ''; - }; - "o" = { - cmd = ["swap-selection-start-stop" "repaint-mode"]; - }; - ${escPlus "1;9B"} = { - cmd = "history-token-search-forward"; - }; - "pageup" = { - cmd = "beginning-of-history"; - }; - "ctrl-l" = { - cmd = [ - "status test-terminal-feature scroll-content-up && commandline -f scrollback-push" - "clear-screen" - ]; - }; - "up" = { - cmd = "up-or-search"; - }; - "ctrl-u" = { - cmd = "backward-kill-line"; - }; - "h" = { - cmd = "backward-char"; - }; - "alt-right" = { - cmd = "nextd-or-forward-word"; - }; - "ctrl-y" = { - cmd = "yank"; - }; - "v" = { - cmd = ["end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - ${escPlus "1;9D"} = { - cmd = "prevd-or-backward-word"; - }; - ${escPlus "1;9C"} = { - cmd = "nextd-or-forward-word"; - }; - "0" = { - cmd = "beginning-of-line"; - }; - "ctrl-k" = { - cmd = "kill-line"; - }; - "alt-v" = { - cmd = "edit_command_buffer"; - }; - "ctrl-v" = { - cmd = "fish_clipboard_paste"; - }; - "ctrl-i" = { - cmd = "complete"; - }; - "d" = { - cmd = [ - "kill-selection" - "end-selection" - "backward-char" - "repaint-mode" - ]; - sets_mode_to = "default"; - }; - "^" = { - cmd = "beginning-of-line"; - }; - "alt-f" = { - cmd = "nextd-or-forward-word"; - }; - "ctrl-right" = { - cmd = "forward-token"; - }; - "alt-w" = { - cmd = "__fish_whatis_current_token"; - }; - ${escPlus "1;9A"} = { - cmd = "history-token-search-backward"; - }; - "shift-right" = { - cmd = "forward-bigword"; - }; - "E" = { - cmd = "forward-bigword-end"; - }; - "tab" = { - cmd = "complete"; - }; - "B" = { - cmd = "backward-bigword"; - }; - "alt-e" = { - cmd = "edit_command_buffer"; - }; - "alt-d" = { - cmd = fromInsert "alt-d"; - }; - "pagedown" = { - cmd = "end-of-history"; - }; - "c" = { - cmd = ["kill-selection" "end-selection" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "alt-left" = { - cmd = "prevd-or-backward-word"; - }; - "comma" = { - cmd = "repeat-jump-reverse"; - }; - "ctrl-d" = { - cmd = "delete-or-exit"; - }; - "escape" = { - cmd = ["end-selection" "repaint-mode"]; - sets_mode_to = "default"; - }; - "ctrl-\\[" = self.visual.escape; - "ctrl-c" = self.visual.escape; - }; - "T" = { - "" = { - cmd = self.t."".cmd; - }; - }; - "f" = { - "" = { - cmd = self.F."".cmd; - }; - }; - "F" = { - "" = { - cmd = [ - "get-key" - "fish_vi_exec_motion commandline --backward-jump=$fish_key" - "set -eg fish_key" - ]; - }; - }; - "t" = { - "" = { - cmd = [ - "get-key" - "fish_vi_exec_motion commandline --forward-jump-till=$fish_key" - "set -eg fish_key" - ]; - }; - }; - "replace" = { - "#" = { - cmd = "__fish_toggle_comment_commandline"; - }; - "ctrl-m" = { - cmd = ["execute" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "shift-backspace" = { - cmd = "backward-char"; - }; - "enter" = { - cmd = ["execute" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "" = { - cmd = ["delete-char" "self-insert"]; - }; - "backspace" = { - cmd = "backward-char"; - }; - "ctrl-j" = { - cmd = ["execute" "repaint-mode"]; - sets_mode_to = "insert"; - }; - "ctrl-\\[" = self.replace.escape; - "escape" = { - cmd = ["cancel" "repaint-mode"]; - sets_mode_to = "default"; - }; - }; - "replace_one" = { - "" = { - cmd = [ - "set -g fish_cursor_end_mode exclusive" - "delete-char" - "self-insert" - "backward-char" - "repaint-mode" - "set -g fish_cursor_end_mode inclusive" - ]; - sets_mode_to = "default"; - }; - "enter" = { - cmd = [ - "set -g fish_cursor_end_mode exclusive" - ''commandline -f delete-char; commandline -i \n; commandline -f backward-char'' - "repaint-mode" - "set -g fish_cursor_end_mode inclusive" - ]; - sets_mode_to = "default"; - }; - "ctrl-j" = self.replace_one.enter; - "ctrl-m" = self.replace_one.enter; - "ctrl-\\[" = self.replace_one.escape; - "escape" = { - cmd = ["cancel" "repaint-mode"]; - sets_mode_to = "default"; - }; - }; -}) diff --git a/modules/by-name/fi/fish/keymappings/default.nix b/modules/by-name/fi/fish/keymappings/default.nix new file mode 100644 index 00000000..6aed6ce4 --- /dev/null +++ b/modules/by-name/fi/fish/keymappings/default.nix @@ -0,0 +1,99 @@ +{lib, ...}: +lib.fix (self: let + escPlus = key: ''\e\[${key}''; +in { + "operator" = import ./operator.nix {inherit self;}; + "insert" = import ./insert.nix {inherit self escPlus;}; + "default" = import ./default_mode.nix {inherit self escPlus;}; + "visual" = import ./visual.nix {inherit self escPlus;}; + + "T" = { + "" = { + cmd = self.t."".cmd; + }; + }; + "f" = { + "" = { + cmd = self.F."".cmd; + }; + }; + "F" = { + "" = { + cmd = [ + "get-key" + "fish_vi_exec_motion commandline --backward-jump=$fish_key" + "set -eg fish_key" + ]; + }; + }; + "t" = { + "" = { + cmd = [ + "get-key" + "fish_vi_exec_motion commandline --forward-jump-till=$fish_key" + "set -eg fish_key" + ]; + }; + }; + + "replace" = { + "#" = { + cmd = "__fish_toggle_comment_commandline"; + }; + "ctrl-m" = { + cmd = ["execute" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "shift-backspace" = { + cmd = "backward-char"; + }; + "enter" = { + cmd = ["execute" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "" = { + cmd = ["delete-char" "self-insert"]; + }; + "backspace" = { + cmd = "backward-char"; + }; + "ctrl-j" = { + cmd = ["execute" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "ctrl-\\[" = self.replace.escape; + "escape" = { + cmd = ["cancel" "repaint-mode"]; + sets_mode_to = "default"; + }; + }; + "replace_one" = { + "" = { + cmd = [ + "set -g fish_cursor_end_mode exclusive" + "delete-char" + "self-insert" + "backward-char" + "repaint-mode" + "set -g fish_cursor_end_mode inclusive" + ]; + sets_mode_to = "default"; + }; + "enter" = { + cmd = [ + "set -g fish_cursor_end_mode exclusive" + ''commandline -f delete-char; commandline -i \n; commandline -f backward-char'' + "repaint-mode" + "set -g fish_cursor_end_mode inclusive" + ]; + sets_mode_to = "default"; + }; + "ctrl-j" = self.replace_one.enter; + "ctrl-m" = self.replace_one.enter; + "ctrl-\\[" = self.replace_one.escape; + "escape" = { + cmd = ["cancel" "repaint-mode"]; + sets_mode_to = "default"; + }; + }; +}) diff --git a/modules/by-name/fi/fish/keymappings/default_mode.nix b/modules/by-name/fi/fish/keymappings/default_mode.nix new file mode 100644 index 00000000..253e09a5 --- /dev/null +++ b/modules/by-name/fi/fish/keymappings/default_mode.nix @@ -0,0 +1,469 @@ +{ + self, + escPlus, +}: { + "up" = {cmd = "up-or-search";}; + "n" = {cmd = "fish_vi_run_count up-or-search";}; + + "down" = {cmd = "down-or-search";}; + "t" = {cmd = "fish_vi_run_count down-or-search";}; + + "right" = {cmd = "forward-char";}; + "s" = {cmd = "fish_vi_run_count forward-char";}; + + "left" = {cmd = "backward-char";}; + "ctrl-h" = self.default.left; + "backspace" = self.default.left; + "h" = {cmd = "fish_vi_run_count backward-char";}; + + ${escPlus "1;9A"} = self.default."alt-up"; + "alt-up" = {cmd = "history-token-search-backward";}; + "alt-." = self.default."alt-up"; + "[" = self.default."alt-up"; + + ${escPlus "1;9B"} = self.default."alt-down"; + "alt-down" = {cmd = "history-token-search-forward";}; + "]" = self.default."alt-down"; + + ${escPlus "1;9D"} = self.default."alt-left"; + "alt-left" = {cmd = "prevd-or-backward-word";}; + "alt-b" = self.default."alt-left"; + + ${escPlus "1;9C"} = self.default."alt-right"; + "alt-right" = {cmd = "nextd-or-forward-word";}; + "alt-f" = self.default."alt-right"; + + "0" = { + cmd = '' + if test -n "$__fish_vi_count"; + fish_vi_arg_digit 0; + else; + commandline -f beginning-of-line; + end + ''; + }; + "1" = {cmd = "fish_vi_arg_digit 1";}; + "2" = {cmd = "fish_vi_arg_digit 2";}; + "3" = {cmd = "fish_vi_arg_digit 3";}; + "4" = {cmd = "fish_vi_arg_digit 4";}; + "5" = {cmd = "fish_vi_arg_digit 5";}; + "6" = {cmd = "fish_vi_arg_digit 6";}; + "7" = {cmd = "fish_vi_arg_digit 7";}; + "8" = {cmd = "fish_vi_arg_digit 8";}; + "9" = {cmd = "fish_vi_arg_digit 9";}; + + "alt-v" = {cmd = "edit_command_buffer";}; + "alt-e" = self.default."alt-v"; + + "ctrl-a" = {cmd = "fish_vi_inc";}; + "ctrl-x" = {cmd = "fish_vi_dec";}; + + "ctrl-r" = {cmd = "redo";}; + "u" = {cmd = "undo";}; + + "ctrl-l" = { + cmd = [ + "status test-terminal-feature scroll-content-up && commandline -f scrollback-push" + "clear-screen" + ]; + }; + "ctrl-y" = {cmd = "yank";}; + "ctrl-v" = {cmd = "fish_clipboard_paste";}; + + "ctrl-u" = {cmd = "backward-kill-line";}; + "delete" = {cmd = "delete-char";}; + "alt-d" = { + cmd = '' + if test "$(commandline; printf .)" = "\n."; + __fish_echo dirh; + else; + commandline -f kill-word; + end + ''; + }; + "alt-l" = { + cmd = "__fish_list_current_token"; + }; + "alt-s" = { + cmd = '' + for cmd in sudo doas please run0; + if command -q $cmd; + fish_commandline_prepend $cmd; + break; + end; + end + ''; + }; + "alt-w" = { + cmd = "__fish_whatis_current_token"; + }; + "end" = { + cmd = "end-of-line"; + }; + "alt-p" = { + cmd = "__fish_paginate"; + }; + "alt-h" = { + cmd = "__fish_man_page"; + }; + "tab" = { + cmd = "complete"; + }; + "ctrl-d" = { + cmd = "delete-or-exit"; + }; + "pageup" = { + cmd = "beginning-of-history"; + }; + "ctrl-w" = { + cmd = "backward-kill-path-component"; + }; + "alt-y" = { + cmd = "yank-pop"; + }; + "ctrl-i" = { + cmd = "complete"; + }; + "ctrl-\\[" = {cmd = "set -g __fish_vi_count";}; + "home" = { + cmd = "beginning-of-line"; + }; + "ctrl-s" = { + cmd = "pager-toggle-search"; + }; + "escape" = {cmd = "set -g __fish_vi_count";}; + "pagedown" = { + cmd = "end-of-history"; + }; + "shift-tab" = { + cmd = "complete-and-search"; + }; + "shift-delete" = { + cmd = ["history-delete" "or" "backward-delete-char"]; + }; + "ctrl-k" = { + cmd = "kill-line"; + }; + "ctrl-c" = { + cmd = ["clear-commandline" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "alt-o" = {cmd = "__fish_preview_current_file";}; + + "x" = {cmd = "__fish_vi_delete_char";}; + "D" = {cmd = "kill-line";}; + + "f" = {cmd = "forward-jump";}; + "k" = {cmd = "forward-jump-till";}; + "F" = {cmd = "backward-jump";}; + "K" = {cmd = "backward-jump-till";}; + + "shift-left" = {cmd = "backward-bigword";}; + "ctrl-left" = {cmd = "backward-token";}; + "shift-right" = {cmd = "forward-bigword";}; + "ctrl-right" = {cmd = "forward-token";}; + + "e" = {cmd = "fish_vi_run_count forward-word-end";}; + "E" = {cmd = "fish_vi_run_count forward-bigword-end";}; + "b" = {cmd = "fish_vi_run_count backward-word";}; + "B" = {cmd = "fish_vi_run_count backward-bigword";}; + "W" = {cmd = "fish_vi_run_count forward-bigword-vi";}; + "w" = {cmd = "fish_vi_run_count forward-word-vi";}; + + "g" = { + "g" = {cmd = "beginning-of-buffer";}; + "^" = {cmd = "beginning-of-line";}; + "~" = {cmd = "fish_vi_start_operator swap-case";}; + "u" = {cmd = "downcase-word";}; + "U" = {cmd = "upcase-word";}; + "$" = {cmd = "end-of-line";}; + "E" = {cmd = "fish_vi_run_count backward-bigword-end";}; + "p" = {cmd = "yank-pop";}; + "e" = {cmd = "fish_vi_run_count backward-word-end";}; + }; + "G" = {cmd = "end-of-buffer";}; + + "%" = {cmd = "jump-to-matching-bracket";}; + ";" = {cmd = "repeat-jump";}; + "P" = {cmd = "yank";}; + ":" = { + "q" = {cmd = "exit";}; + }; + "alt-#" = {cmd = "__fish_toggle_comment_commandline";}; + "S" = { + cmd = ["kill-inner-line" "repaint-mode"]; + sets_mode_to = "insert"; + }; + + "r" = { + cmd = "repaint-mode"; + sets_mode_to = "replace_one"; + }; + "f1" = { + cmd = "__fish_man_page"; + }; + "\"" = { + "+" = { + "P" = {cmd = "fish_clipboard_paste";}; + "y" = { + "y" = {cmd = "fish_clipboard_copy";}; + }; + "p" = { + cmd = [ + "set -g fish_cursor_end_mode exclusive" + "forward-char" + "set -g fish_cursor_end_mode inclusive" + "fish_clipboard_paste" + ]; + }; + "Y" = {cmd = "fish_clipboard_copy";}; + }; + "*" = { + "p" = { + cmd = [ + "set -g fish_cursor_end_mode exclusive" + "forward-char" + "set -g fish_cursor_end_mode inclusive" + "fish_clipboard_paste" + ]; + }; + "P" = {cmd = "fish_clipboard_paste";}; + "Y" = {cmd = "fish_clipboard_copy";}; + "y" = { + "y" = {cmd = "fish_clipboard_copy";}; + }; + }; + }; + "~" = { + cmd = ["togglecase-char" "forward-single-char"]; + }; + "i" = { + cmd = "repaint-mode"; + sets_mode_to = "insert"; + }; + "/" = { + cmd = ["history-pager" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "a" = { + cmd = [ + "set fish_cursor_end_mode exclusive" + "forward-single-char" + "repaint-mode" + ]; + sets_mode_to = "insert"; + }; + "R" = { + cmd = "repaint-mode"; + sets_mode_to = "replace"; + }; + "T" = {cmd = "man (commandline -t) 2>/dev/null; or echo -n \\a";}; + "o" = { + cmd = [ + "set fish_cursor_end_mode exclusive" + "insert-line-under" + "repaint-mode" + ]; + sets_mode_to = "insert"; + }; + "comma" = {cmd = "repeat-jump-reverse";}; + "^" = {cmd = "beginning-of-line";}; + "d" = { + "$" = {cmd = "kill-line";}; + "a" = { + "w" = {cmd = "kill-a-word";}; + "b" = { + cmd = [ + "jump-to-matching-bracket" + "and" + "jump-to-matching-bracket" + "and" + "begin-selection" + "jump-to-matching-bracket" + "kill-selection" + "end-selection" + ]; + }; + "W" = {cmd = "kill-a-bigword";}; + }; + "i" = { + "w" = {cmd = "kill-inner-word";}; + "W" = {cmd = "kill-inner-bigword";}; + "b" = { + cmd = [ + "jump-till-matching-bracket" + "and" + "jump-till-matching-bracket" + "and" + "begin-selection" + "jump-till-matching-bracket" + "kill-selection" + "end-selection" + ]; + }; + }; + "comma" = { + cmd = [ + "begin-selection" + "repeat-jump-reverse" + "kill-selection" + "end-selection" + ]; + }; + ";" = {cmd = ["begin-selection" "repeat-jump" "kill-selection" "end-selection"];}; + "0" = {cmd = "backward-kill-line";}; + "^" = {cmd = "backward-kill-line";}; + }; + "Y" = {cmd = ["kill-whole-line" "yank"];}; + "J" = { + cmd = ["end-of-line" "delete-char"]; + }; + "c" = { + "^" = { + cmd = ["backward-kill-line" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "w" = { + cmd = ["kill-word-vi" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "W" = { + cmd = ["kill-bigword-vi" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "i" = { + "w" = { + cmd = ["kill-inner-word" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "W" = { + cmd = ["kill-inner-bigword" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "b" = { + cmd = [ + "jump-till-matching-bracket" + "and" + "jump-till-matching-bracket" + "and" + "begin-selection" + "jump-till-matching-bracket" + "kill-selection" + "end-selection" + ]; + sets_mode_to = "insert"; + }; + }; + "a" = { + "W" = { + cmd = ["kill-a-bigword" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "w" = { + cmd = ["kill-a-word" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "b" = { + cmd = [ + "jump-till-matching-bracket" + "and" + "jump-till-matching-bracket" + "and" + "begin-selection" + "jump-to-matching-bracket" + "kill-selection" + "end-selection" + ]; + sets_mode_to = "insert"; + }; + }; + "$" = { + cmd = ["kill-line" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "0" = { + cmd = ["backward-kill-line" "repaint-mode"]; + sets_mode_to = "insert"; + }; + }; + "C" = { + cmd = ["kill-line" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "_" = {cmd = "beginning-of-line";}; + "A" = { + cmd = [ + "set fish_cursor_end_mode exclusive" + "end-of-line" + "repaint-mode" + ]; + sets_mode_to = "insert"; + }; + "I" = { + cmd = ["beginning-of-line" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "$" = {cmd = "end-of-line";}; + "X" = {cmd = "__fish_vi_backward_delete_char";}; + "y" = { + "0" = {cmd = ["backward-kill-line" "yank"];}; + "i" = { + "W" = {cmd = ["kill-inner-bigword" "yank"];}; + "w" = {cmd = ["kill-inner-word" "yank"];}; + "b" = { + cmd = [ + "jump-till-matching-bracket" + "and" + "jump-till-matching-bracket" + "and" + "begin-selection" + "jump-till-matching-bracket" + "fish_vi_yank_selection" + "end-selection" + ]; + }; + }; + "a" = { + "W" = {cmd = ["kill-a-bigword" "yank"];}; + "b" = { + cmd = [ + "jump-till-matching-bracket" + "and" + "jump-till-matching-bracket" + "and" + "begin-selection" + "jump-to-matching-bracket" + "fish_vi_yank_selection" + "end-selection" + ]; + }; + "w" = {cmd = ["kill-a-word" "yank"];}; + }; + "^" = {cmd = ["backward-kill-line" "yank"];}; + "$" = {cmd = ["kill-line" "yank"];}; + }; + "p" = { + cmd = [ + "set -g fish_cursor_end_mode exclusive" + "forward-char" + "set -g fish_cursor_end_mode inclusive" + "yank" + ]; + }; + "#" = {cmd = "__fish_toggle_comment_commandline";}; + "v" = { + cmd = ["begin-selection" "repaint-mode"]; + sets_mode_to = "visual"; + }; + "O" = { + cmd = ["set fish_cursor_end_mode exclusive" "insert-line-over" "repaint-mode"]; + sets_mode_to = "insert"; + }; + + "ctrl-m" = self.default.enter; + "ctrl-j" = self.default.enter; + "enter" = { + cmd = "execute"; + sets_mode_to = "insert"; + }; +} diff --git a/modules/by-name/fi/fish/keymappings/insert.nix b/modules/by-name/fi/fish/keymappings/insert.nix new file mode 100644 index 00000000..587ae531 --- /dev/null +++ b/modules/by-name/fi/fish/keymappings/insert.nix @@ -0,0 +1,146 @@ +{ + self, + escPlus, +}: { + ${escPlus "1;9B"} = self.default."${escPlus "1;9B"}"; + ${escPlus "1;9D"} = self.default."${escPlus "1;9D"}"; + ${escPlus "1;9C"} = self.default."${escPlus "1;9C"}"; + ${escPlus "1;9A"} = self.default."${escPlus "1;9A"}"; + inherit + (self.default) + "alt-#" + "alt-." + alt-b + alt-d + alt-e + alt-f + alt-h + alt-l + alt-o + alt-p + alt-left + alt-right + alt-down + alt-up + alt-s + alt-v + alt-w + alt-y + ctrl-d + ctrl-i + ctrl-k + ctrl-l + ctrl-left + ctrl-right + ctrl-s + ctrl-v + ctrl-w + ctrl-y + delete + end + f1 + home + right + left + down + up + pagedown + pageup + shift-delete + shift-left + shift-right + shift-tab + tab + ; + + ">" = { + cmd = ["self-insert" "expand-abbr"]; + }; + "&" = { + cmd = ["self-insert" "expand-abbr"]; + }; + "space" = { + cmd = ["self-insert" "expand-abbr"]; + }; + "ctrl-u" = { + cmd = "backward-kill-line"; + }; + "shift-backspace" = { + cmd = "backward-delete-char"; + }; + "alt-enter" = { + cmd = [ + ''commandline -i \n (commandline --search-field >/dev/null && echo --search-field)'' + "expand-abbr" + ]; + }; + "ctrl-n" = { + cmd = "accept-autosuggestion"; + }; + "shift-space" = { + cmd = [ + '' + commandline -i " " (commandline --search-field >/dev/null && echo --search-field) + '' + "expand-abbr" + ]; + }; + ")" = { + cmd = ["self-insert" "expand-abbr"]; + }; + "ctrl-x" = { + cmd = "fish_clipboard_copy"; + }; + "<" = { + cmd = ["self-insert" "expand-abbr"]; + }; + "shift-enter" = { + cmd = [ + ''commandline -i \n (commandline --search-field >/dev/null && echo --search-field)'' + "expand-abbr" + ]; + }; + "|" = { + cmd = ["self-insert" "expand-abbr"]; + }; + "ctrl-space" = { + cmd = '' + test -n "$(commandline)" + && commandline -i " " (commandline --search-field >/dev/null && echo --search-field) + ''; + }; + "ctrl-h" = { + cmd = "backward-delete-char"; + }; + "" = { + cmd = "self-insert"; + }; + ";" = { + cmd = ["self-insert" "expand-abbr"]; + }; + "backspace" = { + cmd = "backward-delete-char"; + }; + "ctrl-c" = { + cmd = "clear-commandline"; + }; + "escape" = { + cmd = '' + if commandline -P + commandline -f cancel + else + set fish_bind_mode default + if test (count (commandline --cut-at-cursor | tail -c2)) != 2 + commandline -f backward-char + end + commandline -f repaint-mode + end + ''; + }; + "ctrl-\\[" = self.insert.escape; + + "enter" = {cmd = self.default."enter".cmd;}; + "ctrl-j" = self.insert."enter"; + "ctrl-enter" = self.insert."enter"; + "ctrl-m" = self.insert."enter"; +} diff --git a/modules/by-name/fi/fish/keymappings/operator.nix b/modules/by-name/fi/fish/keymappings/operator.nix new file mode 100644 index 00000000..1d886f58 --- /dev/null +++ b/modules/by-name/fi/fish/keymappings/operator.nix @@ -0,0 +1,99 @@ +{self}: { + "0" = { + cmd = "fish_vi_exec_motion beginning-of-line"; + }; + "1" = self.default."1"; + "2" = self.default."2"; + "3" = self.default."3"; + "4" = self.default."4"; + "5" = self.default."5"; + "6" = self.default."6"; + "7" = self.default."7"; + "8" = self.default."8"; + "9" = self.default."9"; + + "B" = { + cmd = "fish_vi_exec_motion backward-bigword"; + }; + "escape" = { + cmd = "fish_vi_operator_cancel"; + }; + "F" = { + cmd = ""; + sets_mode_to = "F"; + }; + "d" = { + cmd = "fish_vi_exec_motion --linewise"; + }; + "e" = { + cmd = "fish_vi_exec_motion forward-word-end"; + }; + "j" = { + cmd = "fish_vi_exec_motion down-line"; + }; + "k" = { + cmd = "fish_vi_exec_motion up-line"; + }; + "h" = { + cmd = "fish_vi_exec_motion backward-char"; + }; + "E" = { + cmd = "fish_vi_exec_motion forward-bigword-end"; + }; + "~" = { + cmd = "fish_vi_exec_motion --linewise"; + }; + "comma" = { + cmd = "fish_vi_exec_motion repeat-jump-reverse"; + }; + "^" = { + cmd = "fish_vi_exec_motion beginning-of-line"; + }; + "ctrl-\\[" = { + cmd = "fish_vi_operator_cancel"; + }; + ";" = { + cmd = "fish_vi_exec_motion repeat-jump"; + }; + "c" = { + cmd = "fish_vi_exec_motion --linewise"; + }; + "T" = { + cmd = ""; + sets_mode_to = "T"; + }; + "t" = { + cmd = ""; + sets_mode_to = "t"; + }; + "W" = { + cmd = "fish_vi_exec_motion forward-bigword-vi"; + }; + "$" = { + cmd = "fish_vi_exec_motion end-of-line"; + }; + "g" = { + "E" = { + cmd = "fish_vi_exec_motion backward-bigword-end"; + }; + "e" = { + cmd = "fish_vi_exec_motion backward-word-end"; + }; + }; + "w" = { + cmd = "fish_vi_exec_motion forward-word-vi"; + }; + "b" = { + cmd = "fish_vi_exec_motion backward-word"; + }; + "y" = { + cmd = "fish_vi_exec_motion --linewise"; + }; + "l" = { + cmd = "fish_vi_exec_motion forward-char"; + }; + "f" = { + cmd = ""; + sets_mode_to = "f"; + }; +} diff --git a/modules/by-name/fi/fish/keymappings/visual.nix b/modules/by-name/fi/fish/keymappings/visual.nix new file mode 100644 index 00000000..47c89157 --- /dev/null +++ b/modules/by-name/fi/fish/keymappings/visual.nix @@ -0,0 +1,306 @@ +{ + self, + escPlus, +}: { + ${escPlus "1;9A"} = {cmd = "history-token-search-backward";}; + ${escPlus "1;9B"} = {cmd = "history-token-search-forward";}; + ${escPlus "1;9C"} = {cmd = "nextd-or-forward-word";}; + ${escPlus "1;9D"} = {cmd = "prevd-or-backward-word";}; + + "alt-down" = { + cmd = "history-token-search-forward"; + }; + "alt-h" = { + cmd = "__fish_man_page"; + }; + "l" = { + cmd = "forward-char"; + }; + "T" = { + cmd = "backward-jump-till"; + }; + "e" = { + cmd = "forward-word-end"; + }; + "right" = { + cmd = "forward-char"; + }; + "t" = { + cmd = "forward-jump-till"; + }; + "s" = { + cmd = ["kill-selection" "end-selection" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "alt-#" = { + cmd = "__fish_toggle_comment_commandline"; + }; + "_" = { + cmd = "beginning-of-line"; + }; + "%" = { + cmd = "jump-to-matching-bracket"; + }; + "ctrl-s" = { + cmd = "pager-toggle-search"; + }; + "ctrl-w" = { + cmd = "backward-kill-path-component"; + }; + "alt-o" = { + cmd = "__fish_preview_current_file"; + }; + "left" = { + cmd = "backward-char"; + }; + "shift-left" = { + cmd = "backward-bigword"; + }; + "alt-p" = { + cmd = "__fish_paginate"; + }; + "F" = { + cmd = "backward-jump"; + }; + "ctrl-left" = { + cmd = "backward-token"; + }; + "b" = { + cmd = "backward-word"; + }; + "f1" = { + cmd = "__fish_man_page"; + }; + "shift-delete" = { + cmd = ["history-delete" "or" "backward-delete-char"]; + }; + "\"" = { + "+" = { + "y" = { + cmd = ["fish_clipboard_copy; commandline -f end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + }; + "*" = { + "y" = { + cmd = ["fish_clipboard_copy; commandline -f end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + }; + }; + "shift-tab" = { + cmd = "complete-and-search"; + }; + "alt-b" = { + cmd = "prevd-or-backward-word"; + }; + "#" = { + cmd = "__fish_toggle_comment_commandline"; + }; + "~" = { + cmd = ["togglecase-selection" "end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + "y" = { + cmd = ["fish_vi_yank_selection" "end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + "f" = { + cmd = "forward-jump"; + }; + "x" = { + cmd = ["kill-selection" "end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + "X" = { + cmd = ["kill-whole-line" "end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + "alt-y" = { + cmd = "yank-pop"; + }; + "$" = { + cmd = "end-of-line"; + }; + ";" = { + cmd = "repeat-jump"; + }; + "W" = { + cmd = "forward-bigword-vi"; + }; + "w" = { + cmd = "forward-word-vi"; + }; + "j" = { + cmd = "down-line"; + }; + "k" = { + cmd = "up-line"; + }; + "end" = { + cmd = "end-of-line"; + }; + "down" = { + cmd = "down-or-search"; + }; + "alt-up" = { + cmd = "history-token-search-backward"; + }; + "i" = { + cmd = ["end-selection" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "g" = { + "^" = { + cmd = "beginning-of-line"; + }; + "e" = { + cmd = "backward-word-end"; + }; + "$" = { + cmd = "end-of-line"; + }; + "U" = { + cmd = ["upcase-selection" "end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + "u" = { + cmd = ["downcase-selection" "end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + "E" = { + cmd = "backward-bigword-end"; + }; + }; + "I" = { + cmd = ["end-selection" "beginning-of-line" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "alt-." = { + cmd = "history-token-search-backward"; + }; + "home" = { + cmd = "beginning-of-line"; + }; + "alt-l" = { + cmd = "__fish_list_current_token"; + }; + "ctrl-x" = { + cmd = "fish_clipboard_copy"; + }; + "alt-s" = { + cmd = '' + for cmd in sudo doas please run0; + if command -q $cmd; + fish_commandline_prepend $cmd; + break; + end; + end + ''; + }; + "o" = { + cmd = ["swap-selection-start-stop" "repaint-mode"]; + }; + "pageup" = { + cmd = "beginning-of-history"; + }; + "ctrl-l" = { + cmd = [ + "status test-terminal-feature scroll-content-up && commandline -f scrollback-push" + "clear-screen" + ]; + }; + "up" = { + cmd = "up-or-search"; + }; + "ctrl-u" = { + cmd = "backward-kill-line"; + }; + "h" = { + cmd = "backward-char"; + }; + "alt-right" = { + cmd = "nextd-or-forward-word"; + }; + "ctrl-y" = { + cmd = "yank"; + }; + "v" = { + cmd = ["end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + "0" = { + cmd = "beginning-of-line"; + }; + "ctrl-k" = { + cmd = "kill-line"; + }; + "alt-v" = { + cmd = "edit_command_buffer"; + }; + "ctrl-v" = { + cmd = "fish_clipboard_paste"; + }; + "ctrl-i" = { + cmd = "complete"; + }; + "d" = { + cmd = [ + "kill-selection" + "end-selection" + "backward-char" + "repaint-mode" + ]; + sets_mode_to = "default"; + }; + "^" = { + cmd = "beginning-of-line"; + }; + "alt-f" = { + cmd = "nextd-or-forward-word"; + }; + "ctrl-right" = { + cmd = "forward-token"; + }; + "alt-w" = { + cmd = "__fish_whatis_current_token"; + }; + "shift-right" = { + cmd = "forward-bigword"; + }; + "E" = { + cmd = "forward-bigword-end"; + }; + "tab" = { + cmd = "complete"; + }; + "B" = { + cmd = "backward-bigword"; + }; + "alt-e" = { + cmd = "edit_command_buffer"; + }; + "alt-d" = self.default."alt-d"; + "pagedown" = { + cmd = "end-of-history"; + }; + "c" = { + cmd = ["kill-selection" "end-selection" "repaint-mode"]; + sets_mode_to = "insert"; + }; + "alt-left" = { + cmd = "prevd-or-backward-word"; + }; + "comma" = { + cmd = "repeat-jump-reverse"; + }; + "ctrl-d" = { + cmd = "delete-or-exit"; + }; + "escape" = { + cmd = ["end-selection" "repaint-mode"]; + sets_mode_to = "default"; + }; + "ctrl-\\[" = self.visual.escape; + "ctrl-c" = self.visual.escape; +} diff --git a/modules/by-name/fi/fish/module.nix b/modules/by-name/fi/fish/module.nix index 7d423bec..4b4cfee1 100644 --- a/modules/by-name/fi/fish/module.nix +++ b/modules/by-name/fi/fish/module.nix @@ -26,7 +26,7 @@ ) ); - keymappings_raw = import ./keymappings.nix {inherit lib;}; + keymappings_raw = import ./keymappings {inherit lib;}; mkBinding = mode: base_key: binding: let sets_mode_to = if binding ? sets_mode_to -- cgit v1.3.1