snowflake/home/programs/yazi/keymap.nix
notohh 502c926f9f
WIP: treewide: refactor to use flake-parts
first pass of my flake refactor using flake-parts
2024-04-16 21:02:33 -04:00

289 lines
5.8 KiB
Nix

_: {
programs.yazi.keymap = {
manager.keymap = [
{
on = ["<Esc>"];
exec = "escape";
desc = "Exit visual mode; clear selected; or cancel search";
}
{
on = ["q"];
exec = "quit";
desc = "Exit the process";
}
{
on = ["<C-q>"];
exec = "close";
desc = "Close the current tab; or quit if it is last tab";
}
# Navigation
{
on = ["<Up>"];
exec = "arrow -1";
desc = "Move cursor up";
}
{
on = ["<Down>"];
exec = "arrow 1";
desc = "Move cursor down";
}
{
on = ["<Left>"];
exec = "leave";
desc = "Go back to the parent directory";
}
{
on = ["<Right>"];
exec = "enter";
desc = "Enter the child directory";
}
{
on = ["g" "g"];
exec = "arrow -99999999";
desc = "Move cursor to the top";
}
{
on = ["G"];
exec = "arrow 99999999";
desc = "Move cursor to the bottom";
}
# Selection
{
on = ["<Space>"];
exec = ["select --state=none" "arrow 1"];
desc = "Toggle the current selection state";
}
{
on = ["i"];
exec = "visual_mode";
desc = "Enter visual mode (selection mode)";
}
{
on = ["I"];
exec = "visual_mode --unset";
desc = "Enter visual mode (unset mode)";
}
{
on = ["<C-a>"];
exec = "select_all --state=true";
desc = "Select all files";
}
{
on = ["<C-r>"];
exec = "select_all --state=none";
desc = "Inverse selection of all files";
}
# Operations
{
on = ["<Enter>"];
exec = "open";
desc = "Open selected file(s)";
}
{
on = ["y"];
exec = "yank";
desc = "Copy selected file(s)";
}
{
on = ["x"];
exec = "yank --cut";
desc = "Cut selected file(s)";
}
{
on = ["p"];
exec = "paste";
desc = "Paste the file(s)";
}
{
on = ["P"];
exec = "paste --force";
desc = "Paste the files (overwrite)";
}
{
on = ["d"];
exec = "remove --permanently";
desc = "Permanently delete the file(s)";
}
{
on = ["D"];
exec = "remove --permanently";
desc = "Permanently delete the files(s)";
}
{
on = ["a"];
exec = "create";
desc = "create a file or directory (ends with / for directories)";
}
{
on = ["r"];
exec = "rename";
desc = "rename a file or directory";
}
{
on = [":"];
exec = "shell --block";
desc = "run a blocking shell command";
}
{
on = ["."];
exec = "hidden toggle";
desc = "toggle hidden files";
}
{
on = ["z"];
exec = "jump zoxide";
desc = "jump to a directory using zoxide";
}
{
on = ["Z"];
exec = "jump fzf";
desc = "reveal files with fzf";
}
# Copy
{
on = ["c" "c"];
exec = "copy path";
desc = "copy the absolute path";
}
{
on = ["c" "d"];
exec = "copy dirname";
desc = "copy parent directory path";
}
{
on = ["c" "f"];
exec = "copy filename";
desc = "copy file name";
}
# Find
{
on = ["/"];
exec = "find";
}
{
on = ["?"];
exec = "find --previous";
}
{
on = ["n"];
exec = "find_arrow";
}
{
on = ["N"];
exec = "find_arrow --previous";
}
{
on = ["s"];
exec = "search fd";
}
{
on = ["S"];
exec = "search rg";
}
{
on = ["<C-s>"];
exec = "search none";
}
# Tabs
{
on = ["t"];
exec = "tab_create --current";
desc = "Create a new tab using the current path";
}
{
on = ["1"];
exec = "tab_switch 0";
desc = "Switch to the first tab";
}
{
on = ["2"];
exec = "tab_switch 1";
desc = "Switch to the second tab";
}
{
on = ["3"];
exec = "tab_switch 2";
desc = "Switch to the third tab";
}
{
on = ["4"];
exec = "tab_switch 3";
desc = "Switch to the fourth tab";
}
{
on = ["5"];
exec = "tab_switch 4";
desc = "Switch to the fifth tab";
}
{
on = ["6"];
exec = "tab_switch 5";
desc = "Switch to the sixth tab";
}
{
on = ["7"];
exec = "tab_switch 6";
desc = "Switch to the seventh tab";
}
{
on = ["8"];
exec = "tab_switch 7";
desc = "Switch to the eighth tab";
}
{
on = ["9"];
exec = "tab_switch 8";
desc = "Switch to the ninth tab";
}
{
on = ["["];
exec = "tab_switch -1 --relative";
desc = "Switch to the previous tab";
}
{
on = ["]"];
exec = "tab_switch 1 --relative";
desc = "Switch to the next tab";
}
{
on = ["{"];
exec = "tab_swap -1";
desc = "Swap the current tab with the previous tab";
}
{
on = ["}"];
exec = "tab_swap 1";
desc = "Swap the current tab with the next tab";
}
# Tasks
{
on = ["w"];
exec = "tasks_show";
desc = "Show the tasks manager";
}
# Help
{
on = ["~"];
exec = "help";
desc = "Open help";
}
];
};
}