summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-11-09 15:41:24 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-11-09 16:32:14 +0100
commit215dc21512c2ea40620cc28ccef3dd9e77685725 (patch)
tree540ce27c810ad182921f35a7b052ac31fc2c1275 /modules
parentmodules/nix/nix_wrapper.sh: Check `/nix/store` instead of `/nix` (diff)
downloadnixos-config-215dc21512c2ea40620cc28ccef3dd9e77685725.zip
modules/fish: Reorganize the keybindings
Insert and Default modes are now more or less how I want them.
Diffstat (limited to 'modules')
-rw-r--r--modules/by-name/fi/fish/keymappings.nix1172
-rw-r--r--modules/by-name/fi/fish/keymappings/default.nix99
-rw-r--r--modules/by-name/fi/fish/keymappings/default_mode.nix469
-rw-r--r--modules/by-name/fi/fish/keymappings/insert.nix146
-rw-r--r--modules/by-name/fi/fish/keymappings/operator.nix99
-rw-r--r--modules/by-name/fi/fish/keymappings/visual.nix306
-rw-r--r--modules/by-name/fi/fish/module.nix2
7 files changed, 1120 insertions, 1173 deletions
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