From e08b0e8184e6be3426eac15bceb2ef1614c3d2b7 Mon Sep 17 00:00:00 2001 From: "Lennart J. Kurzweg (Nx2)" Date: Mon, 31 Mar 2025 00:42:18 +0200 Subject: [PATCH] yazi refactor + update fix --- home-modules/yazi.nix | 272 +++++++++++++++++++++--------------------- 1 file changed, 137 insertions(+), 135 deletions(-) diff --git a/home-modules/yazi.nix b/home-modules/yazi.nix index c175115..3a2268d 100644 --- a/home-modules/yazi.nix +++ b/home-modules/yazi.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, system, rice, inputs, ... }: +{ pkgs, system, rice, inputs, ... }: { home.packages = with pkgs; [ # yazi @@ -13,169 +13,171 @@ enableFishIntegration = true; shellWrapperName = "ya"; plugins = with inputs.yazi-plugins.packages.${system}; { - inherit chmod starship; + inherit + # chmod + starship; }; # initLua = /* lua */ '' ''; keymap = { manager.keymap = [ - { on = ""; run = "escape"; desc = "Exit visual mode, clear selected, or cancel search"; } - { on = "q"; run = "quit"; desc = "Exit the process"; } - { on = "Q"; run = "quit --no-cwd-file"; desc = "Exit the process without writing cwd-file"; } - { on = ""; run = "close"; desc = "Close the current tab, or quit if it is last tab"; } - { on = ""; run = "suspend"; desc = "Suspend the process"; } + { on = ""; run = "escape"; desc = "Exit visual mode, clear selected, or cancel search"; } + { on = "q"; run = "quit"; desc = "Exit the process"; } + { on = "Q"; run = "quit --no-cwd-file"; desc = "Exit the process without writing cwd-file"; } + { on = ""; run = "close"; desc = "Close the current tab, or quit if it is last tab"; } + { on = ""; run = "suspend"; desc = "Suspend the process"; } # Hopping - { on = "k"; run = "arrow -1"; desc = "Move cursor up"; } - { on = "j"; run = "arrow 1"; desc = "Move cursor down"; } - { on = ""; run = "arrow -1"; desc = "Move cursor up"; } - { on = ""; run = "arrow 1"; desc = "Move cursor down"; } - { on = ""; run = "arrow -50%"; desc = "Move cursor up half page"; } - { on = ""; run = "arrow 50%"; desc = "Move cursor down half page"; } - { on = ""; run = "arrow -100%"; desc = "Move cursor up one page"; } - { on = ""; run = "arrow 100%"; desc = "Move cursor down one page"; } - { on = ""; run = "arrow -100%"; desc = "Move cursor up one page"; } - { on = ""; run = "arrow 100%"; desc = "Move cursor down one page"; } - { on = [ "g" "g" ]; run = "arrow down"; desc = "Move cursor to the top"; } - { on = [ "g" "e" ]; run = "arrow up"; desc = "Move cursor to the end"; } - { on = [ "g" "h" ]; run = "cd ~"; desc = "Go to the home directory"; } - { on = [ "g" "n" ]; run = "cd ~/nix-dots"; desc = "Go to the Nix-Dotfiles directory"; } - { on = [ "g" "n" ]; run = "cd /nix/store"; desc = "Go to the Nix-Store"; } - { on = [ "g" "c" ]; run = "cd ~/.config"; desc = "Go to the config directory"; } - { on = [ "g" "l" ]; run = "cd ~/.locale"; desc = "Go to the .locale directory"; } - { on = [ "g" "C" ]; run = "cd ~/.cache"; desc = "Go to the .cache directory"; } + { on = "k"; run = "arrow -1"; desc = "Move cursor up"; } + { on = "j"; run = "arrow 1"; desc = "Move cursor down"; } + { on = ""; run = "arrow -1"; desc = "Move cursor up"; } + { on = ""; run = "arrow 1"; desc = "Move cursor down"; } + { on = ""; run = "arrow -50%"; desc = "Move cursor up half page"; } + { on = ""; run = "arrow 50%"; desc = "Move cursor down half page"; } + { on = ""; run = "arrow -100%"; desc = "Move cursor up one page"; } + { on = ""; run = "arrow 100%"; desc = "Move cursor down one page"; } + { on = ""; run = "arrow -100%"; desc = "Move cursor up one page"; } + { on = ""; run = "arrow 100%"; desc = "Move cursor down one page"; } + { on = [ "g" "g" ]; run = "arrow down"; desc = "Move cursor to the top"; } + { on = [ "g" "e" ]; run = "arrow up"; desc = "Move cursor to the end"; } + { on = [ "g" "h" ]; run = "cd ~"; desc = "Go to the home directory"; } + { on = [ "g" "n" ]; run = "cd ~/nix-dots"; desc = "Go to the Nix-Dotfiles directory"; } + { on = [ "g" "n" ]; run = "cd /nix/store"; desc = "Go to the Nix-Store"; } + { on = [ "g" "c" ]; run = "cd ~/.config"; desc = "Go to the config directory"; } + { on = [ "g" "l" ]; run = "cd ~/.locale"; desc = "Go to the .locale directory"; } + { on = [ "g" "C" ]; run = "cd ~/.cache"; desc = "Go to the .cache directory"; } { on = [ "g" "m" ]; run = "cd ~/media"; desc = "Go to the media (udiskie mount) directory"; } - { on = [ "g" "v" ]; run = "cd ~/Videos"; desc = "Go to the Videos directory"; } - { on = [ "g" "d" ]; run = "cd ~/Downloads"; desc = "Go to the downloads directory"; } - { on = [ "g" "D" ]; run = "cd ~/Documents"; desc = "Go to the Documents directory"; } - { on = [ "g" "r" ]; run = "cd /"; desc = "Go to the root (/) directory"; } - { on = [ "g" "/" ]; run = "cd /"; desc = "Go to the root (/) directory"; } - { on = [ "g" "" ]; run = "cd --interactive"; desc = "Go to a directory interactively"; } + { on = [ "g" "v" ]; run = "cd ~/Videos"; desc = "Go to the Videos directory"; } + { on = [ "g" "d" ]; run = "cd ~/Downloads"; desc = "Go to the downloads directory"; } + { on = [ "g" "D" ]; run = "cd ~/Documents"; desc = "Go to the Documents directory"; } + { on = [ "g" "r" ]; run = "cd /"; desc = "Go to the root (/) directory"; } + { on = [ "g" "/" ]; run = "cd /"; desc = "Go to the root (/) directory"; } + { on = [ "g" "" ]; run = "cd --interactive"; desc = "Go to a directory interactively"; } # Navigation - { on = "h"; run = "leave"; desc = "Go back to the parent directory"; } - { on = "l"; run = "enter"; desc = "Enter the child directory"; } - { on = ""; run = "leave"; desc = "Go back to the parent directory"; } - { on = ""; run = "enter"; desc = "Enter the child directory"; } + { on = "h"; run = "leave"; desc = "Go back to the parent directory"; } + { on = "l"; run = "enter"; desc = "Enter the child directory"; } + { on = ""; run = "leave"; desc = "Go back to the parent directory"; } + { on = ""; run = "enter"; desc = "Enter the child directory"; } { on = "H"; run = "back"; desc = "Go back to the previous directory"; } - { on = "L"; run = "forward"; desc = "Go forward to the next directory"; } + { on = "L"; run = "forward"; desc = "Go forward to the next directory"; } # Seeking - { on = "K"; run = "seek -5"; desc = "Seek up 5 units in the preview"; } + { on = "K"; run = "seek -5"; desc = "Seek up 5 units in the preview"; } { on = "J"; run = "seek 5"; desc = "Seek down 5 units in the preview"; } # Selection - { on = ""; run = [ "toggle --state=none" "arrow 1" ]; desc = "Toggle the current selection state"; } + { on = ""; run = [ "toggle --state=none" "arrow 1" ]; desc = "Toggle the current selection state"; } { on = "v"; run = "visual_mode"; desc = "Enter visual mode (selection mode)"; } - { on = "V"; run = "visual_mode --unset"; desc = "Enter visual mode (unset mode)"; } - { on = ""; run = "toggle_all --state=on"; desc = "Select all files"; } - { on = ""; run = "toggle_all --state=off"; desc = "Deselect all files"; } - { on = ""; run = "toggle_all --state=none"; desc = "Inverse selection of all files"; } + { on = "V"; run = "visual_mode --unset"; desc = "Enter visual mode (unset mode)"; } + { on = ""; run = "toggle_all --state=on"; desc = "Select all files"; } + { on = ""; run = "toggle_all --state=off"; desc = "Deselect all files"; } + { on = ""; run = "toggle_all --state=none"; desc = "Inverse selection of all files"; } # Operation - { on = "o"; run = "open"; desc = "Open selected files"; } - { on = "O"; run = "open --interactive"; desc = "Open selected files interactively"; } - { on = ""; run = "open"; desc = "Open selected files"; } - { on = ""; run = "open --interactive"; desc = "Open selected files interactively"; } - { on = "y"; run = "yank"; desc = "Yank selected files (copy)"; } - { on = "x"; run = "yank --cut"; desc = "Yank selected files (cut)"; } - { on = "p"; run = "paste"; desc = "Paste yanked "; } - { on = "P"; run = "paste --force"; desc = "Paste yanked (overwrite if exists)"; } - { on = "-"; run = "link"; desc = "Symlink the absolute path of yanked files"; } - { on = "_"; run = "link --relative"; desc = "Symlink the relative path of yanked files"; } - { on = ""; run = "hardlink"; desc = "Hardlink yanked files"; } - { on = "Y"; run = "unyank"; desc = "Cancel the yank status"; } - { on = "X"; run = "unyank"; desc = "Cancel the yank status"; } - { on = "d"; run = "remove"; desc = "Trash selected files"; } - { on = "D"; run = "remove --permanently"; desc = "Permanently delete selected files"; } - { on = "a"; run = "create"; desc = "Create a file (ends with / for directories)"; } - { on = "r"; run = "rename --cursor=before_ext"; desc = "Rename selected file(s)"; } - { on = ";"; run = "shell --interactive"; desc = "Run a shell command"; } - { on = ":"; run = "shell --block --interactive"; desc = "Run a shell command (block until finishes)"; } - { on = "."; run = "hidden toggle"; desc = "Toggle the visibility of hidden files"; } - { on = "s"; run = "search fd"; desc = "Search files by name using fd"; } - { on = "S"; run = "search rg"; desc = "Search files by content using ripgrep"; } - { on = ""; run = "escape --search"; desc = "Cancel the ongoing search"; } - { on = "z"; run = "plugin zoxide"; desc = "Jump to a directory using zoxide"; } + { on = "o"; run = "open"; desc = "Open selected files"; } + { on = "O"; run = "open --interactive"; desc = "Open selected files interactively"; } + { on = ""; run = "open"; desc = "Open selected files"; } + { on = ""; run = "open --interactive"; desc = "Open selected files interactively"; } + { on = "y"; run = "yank"; desc = "Yank selected files (copy)"; } + { on = "x"; run = "yank --cut"; desc = "Yank selected files (cut)"; } + { on = "p"; run = "paste"; desc = "Paste yanked "; } + { on = "P"; run = "paste --force"; desc = "Paste yanked (overwrite if exists)"; } + { on = "-"; run = "link"; desc = "Symlink the absolute path of yanked files"; } + { on = "_"; run = "link --relative"; desc = "Symlink the relative path of yanked files"; } + { on = ""; run = "hardlink"; desc = "Hardlink yanked files"; } + { on = "Y"; run = "unyank"; desc = "Cancel the yank status"; } + { on = "X"; run = "unyank"; desc = "Cancel the yank status"; } + { on = "d"; run = "remove"; desc = "Trash selected files"; } + { on = "D"; run = "remove --permanently"; desc = "Permanently delete selected files"; } + { on = "a"; run = "create"; desc = "Create a file (ends with / for directories)"; } + { on = "r"; run = "rename --cursor=before_ext"; desc = "Rename selected file(s)"; } + { on = ";"; run = "shell --interactive"; desc = "Run a shell command"; } + { on = ":"; run = "shell --block --interactive"; desc = "Run a shell command (block until finishes)"; } + { on = "."; run = "hidden toggle"; desc = "Toggle the visibility of hidden files"; } + { on = "s"; run = "search fd"; desc = "Search files by name using fd"; } + { on = "S"; run = "search rg"; desc = "Search files by content using ripgrep"; } + { on = ""; run = "escape --search"; desc = "Cancel the ongoing search"; } + { on = "z"; run = "plugin zoxide"; desc = "Jump to a directory using zoxide"; } { on = "Z"; run = "plugin fzf"; desc = "Jump to a directory or reveal a file using fzf"; } # Linemode - { on = [ "m" "s" ]; run = "linemode size"; desc = "Set linemode to size"; } - { on = [ "m" "p" ]; run = "linemode permissions"; desc = "Set linemode to permissions"; } - { on = [ "m" "c" ]; run = "linemode ctime"; desc = "Set linemode to ctime"; } - { on = [ "m" "m" ]; run = "linemode mtime"; desc = "Set linemode to mtime"; } - { on = [ "m" "o" ]; run = "linemode owner"; desc = "Set linemode to owner"; } - { on = [ "m" "n" ]; run = "linemode none"; desc = "Set linemode to none"; } + { on = [ "m" "s" ]; run = "linemode size"; desc = "Set linemode to size"; } + { on = [ "m" "p" ]; run = "linemode permissions"; desc = "Set linemode to permissions"; } + { on = [ "m" "c" ]; run = "linemode ctime"; desc = "Set linemode to ctime"; } + { on = [ "m" "m" ]; run = "linemode mtime"; desc = "Set linemode to mtime"; } + { on = [ "m" "o" ]; run = "linemode owner"; desc = "Set linemode to owner"; } + { on = [ "m" "n" ]; run = "linemode none"; desc = "Set linemode to none"; } # Copy - { on = [ "c" "c" ]; run = "copy path"; desc = "Copy the file path"; } - { on = [ "c" "d" ]; run = "copy dirname"; desc = "Copy the directory path"; } - { on = [ "c" "f" ]; run = "copy filename"; desc = "Copy the filename"; } - { on = [ "c" "n" ]; run = "copy name_without_ext"; desc = "Copy the filename without extension"; } + { on = [ "c" "c" ]; run = "copy path"; desc = "Copy the file path"; } + { on = [ "c" "d" ]; run = "copy dirname"; desc = "Copy the directory path"; } + { on = [ "c" "f" ]; run = "copy filename"; desc = "Copy the filename"; } + { on = [ "c" "n" ]; run = "copy name_without_ext"; desc = "Copy the filename without extension"; } # Filter { on = "f"; run = "filter --smart"; desc = "Filter files"; } # Find - { on = "/"; run = "find --smart"; desc = "Find next file"; } - { on = "?"; run = "find --previous --smart"; desc = "Find previous file"; } - { on = "n"; run = "find_arrow"; desc = "Go to the next found"; } + { on = "/"; run = "find --smart"; desc = "Find next file"; } + { on = "?"; run = "find --previous --smart"; desc = "Find previous file"; } + { on = "n"; run = "find_arrow"; desc = "Go to the next found"; } { on = "N"; run = "find_arrow --previous"; desc = "Go to the previous found"; } - # Sortin - { on = [ "," "m" ]; run = [ "sort modified --reverse=no" "linemode mtime" ]; desc = "Sort by modified time"; } + # Sorting + { on = [ "," "m" ]; run = [ "sort modified --reverse=no" "linemode mtime" ]; desc = "Sort by modified time"; } { on = [ "," "M" ]; run = [ "sort modified --reverse" "linemode mtime" ]; desc = "Sort by modified time (reverse)"; } - { on = [ "," "c" ]; run = [ "sort created --reverse=no" "linemode ctime" ]; desc = "Sort by created time"; } - { on = [ "," "C" ]; run = [ "sort created --reverse" "linemode ctime" ]; desc = "Sort by created time (reverse)"; } - { on = [ "," "e" ]; run = "sort extension --reverse=no"; desc = "Sort by extension"; } - { on = [ "," "E" ]; run = "sort extension --reverse"; desc = "Sort by extension (reverse)"; } - { on = [ "," "a" ]; run = "sort alphabetical --reverse=no"; desc = "Sort alphabetically"; } - { on = [ "," "A" ]; run = "sort alphabetical --reverse"; desc = "Sort alphabetically (reverse)"; } - { on = [ "," "n" ]; run = "sort natural --reverse=no"; desc = "Sort naturally"; } - { on = [ "," "N" ]; run = "sort natural --reverse"; desc = "Sort naturally (reverse)"; } - { on = [ "," "s" ]; run = [ "sort size --reverse=no" "linemode size" ]; desc = "Sort by size"; } - { on = [ "," "S" ]; run = [ "sort size --reverse" "linemode size" ]; desc = "Sort by size (reverse)"; } + { on = [ "," "c" ]; run = [ "sort created --reverse=no" "linemode ctime" ]; desc = "Sort by created time"; } + { on = [ "," "C" ]; run = [ "sort created --reverse" "linemode ctime" ]; desc = "Sort by created time (reverse)"; } + { on = [ "," "e" ]; run = "sort extension --reverse=no"; desc = "Sort by extension"; } + { on = [ "," "E" ]; run = "sort extension --reverse"; desc = "Sort by extension (reverse)"; } + { on = [ "," "a" ]; run = "sort alphabetical --reverse=no"; desc = "Sort alphabetically"; } + { on = [ "," "A" ]; run = "sort alphabetical --reverse"; desc = "Sort alphabetically (reverse)"; } + { on = [ "," "n" ]; run = "sort natural --reverse=no"; desc = "Sort naturally"; } + { on = [ "," "N" ]; run = "sort natural --reverse"; desc = "Sort naturally (reverse)"; } + { on = [ "," "s" ]; run = [ "sort size --reverse=no" "linemode size" ]; desc = "Sort by size"; } + { on = [ "," "S" ]; run = [ "sort size --reverse" "linemode size" ]; desc = "Sort by size (reverse)"; } # Tab - { on = "t"; run = "tab_create --current"; desc = "Create a new tab with CWD"; } - { on = ""; run = "close"; desc = "Close the current tab"; } - { on = "1"; run = "tab_switch 0"; desc = "Switch to the first tab"; } - { on = "2"; run = "tab_switch 1"; desc = "Switch to the second tab"; } - { on = "3"; run = "tab_switch 2"; desc = "Switch to the third tab"; } - { on = "4"; run = "tab_switch 3"; desc = "Switch to the fourth tab"; } - { on = "5"; run = "tab_switch 4"; desc = "Switch to the fifth tab"; } - { on = "6"; run = "tab_switch 5"; desc = "Switch to the sixth tab"; } - { on = "7"; run = "tab_switch 6"; desc = "Switch to the seventh tab"; } - { on = "8"; run = "tab_switch 7"; desc = "Switch to the eighth tab"; } - { on = "9"; run = "tab_switch 8"; desc = "Switch to the ninth tab"; } - { on = ""; run = "tab_swap 0"; desc = "Swap current tab with the first tab"; } - { on = ""; run = "tab_swap 1"; desc = "Swap current tab with the second tab"; } - { on = ""; run = "tab_swap 2"; desc = "Swap current tab with the third tab"; } - { on = ""; run = "tab_swap 3"; desc = "Swap current tab with the fourth tab"; } - { on = ""; run = "tab_swap 4"; desc = "Swap current tab with the fifth tab"; } - { on = ""; run = "tab_swap 4"; desc = "Swap current tab with "; } - { on = ""; run = "tab_swap 5"; desc = "Swap current tab with the sixth tab"; } - { on = ""; run = "tab_swap 5"; desc = "Swap current tab with "; } - { on = ""; run = "tab_swap 6"; desc = "Swap current tab with the seventh tab"; } - { on = ""; run = "tab_swap 6"; desc = "Swap current tab with tab"; } - { on = ""; run = "tab_swap 7"; desc = "Swap current tab with the eighth tab"; } - { on = ""; run = "tab_swap 7"; desc = "Swap current tab with b"; } - { on = ""; run = "tab_swap 8"; desc = "Swap current tab with the ninth tab"; } - { on = ""; run = "tab_swap 8"; desc = "Swap current tab with "; } - { on = "["; run = "tab_switch -1 --relative"; desc = "Switch to the previous tab"; } - { on = "["; run = "tab_switch -1 --relative"; desc = "Switch to thtab"; } - { on = "]"; run = "tab_switch 1 --relative"; desc = "Switch to the next tab"; } - { on = "]"; run = "tab_switch 1 --relative"; desc = "Switch ttab"; } - { on = "{"; run = "tab_swap -1"; desc = "Swap current tab with previous tab"; } - { on = "{"; run = "tab_swap -1"; desc = "Swap current tab wittab"; } - { on = "}"; run = "tab_swap 1"; desc = "Swap current tab with next tab"; } + { on = "t"; run = "tab_create --current"; desc = "Create a new tab with CWD"; } + { on = ""; run = "close"; desc = "Close the current tab"; } + { on = "1"; run = "tab_switch 0"; desc = "Switch to the first tab"; } + { on = "2"; run = "tab_switch 1"; desc = "Switch to the second tab"; } + { on = "3"; run = "tab_switch 2"; desc = "Switch to the third tab"; } + { on = "4"; run = "tab_switch 3"; desc = "Switch to the fourth tab"; } + { on = "5"; run = "tab_switch 4"; desc = "Switch to the fifth tab"; } + { on = "6"; run = "tab_switch 5"; desc = "Switch to the sixth tab"; } + { on = "7"; run = "tab_switch 6"; desc = "Switch to the seventh tab"; } + { on = "8"; run = "tab_switch 7"; desc = "Switch to the eighth tab"; } + { on = "9"; run = "tab_switch 8"; desc = "Switch to the ninth tab"; } + { on = ""; run = "tab_swap 0"; desc = "Swap current tab with the first tab"; } + { on = ""; run = "tab_swap 1"; desc = "Swap current tab with the second tab"; } + { on = ""; run = "tab_swap 2"; desc = "Swap current tab with the third tab"; } + { on = ""; run = "tab_swap 3"; desc = "Swap current tab with the fourth tab"; } + { on = ""; run = "tab_swap 4"; desc = "Swap current tab with the fifth tab"; } + { on = ""; run = "tab_swap 4"; desc = "Swap current tab with "; } + { on = ""; run = "tab_swap 5"; desc = "Swap current tab with the sixth tab"; } + { on = ""; run = "tab_swap 5"; desc = "Swap current tab with "; } + { on = ""; run = "tab_swap 6"; desc = "Swap current tab with the seventh tab"; } + { on = ""; run = "tab_swap 6"; desc = "Swap current tab with tab"; } + { on = ""; run = "tab_swap 7"; desc = "Swap current tab with the eighth tab"; } + { on = ""; run = "tab_swap 7"; desc = "Swap current tab with b"; } + { on = ""; run = "tab_swap 8"; desc = "Swap current tab with the ninth tab"; } + { on = ""; run = "tab_swap 8"; desc = "Swap current tab with "; } + { on = "["; run = "tab_switch -1 --relative"; desc = "Switch to the previous tab"; } + { on = "["; run = "tab_switch -1 --relative"; desc = "Switch to thtab"; } + { on = "]"; run = "tab_switch 1 --relative"; desc = "Switch to the next tab"; } + { on = "]"; run = "tab_switch 1 --relative"; desc = "Switch ttab"; } + { on = "{"; run = "tab_swap -1"; desc = "Swap current tab with previous tab"; } + { on = "{"; run = "tab_swap -1"; desc = "Swap current tab wittab"; } + { on = "}"; run = "tab_swap 1"; desc = "Swap current tab with next tab"; } # Tasks { on = "w"; run = "tasks_show"; desc = "Show task manager"; } ]; tasks.keymap = [ # Task - { on = "w"; run = "close"; desc = "Close Task View"; } - { on = "q"; run = "close"; desc = "Close Task View"; } - { on = ""; run = "close"; desc = "Close Task View"; } - { on = "c"; run = "cancel"; desc = "Cancel Task"; } - { on = "i"; run = "inspect"; desc = "Inspect Task"; } - { on = "j"; run = "arrow -1"; desc = "Up in list"; } - { on = "k"; run = "arrow 1"; desc = "Down in list"; } - { on = "u"; run = "arrow -5"; desc = "Up in list (fast)"; } - { on = "d"; run = "arrow 5"; desc = "Down in list (fast)"; } + { on = "w"; run = "close"; desc = "Close Task View"; } + { on = "q"; run = "close"; desc = "Close Task View"; } + { on = ""; run = "close"; desc = "Close Task View"; } + { on = "c"; run = "cancel"; desc = "Cancel Task"; } + { on = "i"; run = "inspect"; desc = "Inspect Task"; } + { on = "j"; run = "arrow -1"; desc = "Up in list"; } + { on = "k"; run = "arrow 1"; desc = "Down in list"; } + { on = "u"; run = "arrow -5"; desc = "Up in list (fast)"; } + { on = "d"; run = "arrow 5"; desc = "Down in list (fast)"; } ]; - help = [ + help.keymap = [ # Help - { on = "~"; run = "help"; desc = "Open help"; } - { on = "?"; run = "help"; desc = "Open help"; } + { on = "~"; run = "help"; desc = "Open help"; } + { on = "?"; run = "help"; desc = "Open help"; } { on = ""; run = "help"; desc = "Open help"; } ]; };