better yazi
This commit is contained in:
5
flake.nix
Executable file → Normal file
5
flake.nix
Executable file → Normal file
@@ -14,8 +14,11 @@
|
|||||||
Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
||||||
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; };
|
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; };
|
||||||
|
|
||||||
# firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; };
|
|
||||||
yazi.url = "github:sxyazi/yazi";
|
yazi.url = "github:sxyazi/yazi";
|
||||||
|
yazi-plugins = {
|
||||||
|
url = "github:lordkekz/nix-yazi-plugins";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,149 @@
|
|||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# yazi
|
# yazi
|
||||||
dragon
|
# dragon
|
||||||
unar
|
unar
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
# package = pkgs.yazi;
|
||||||
package = inputs.yazi.packages.${system}.default;
|
package = inputs.yazi.packages.${system}.default;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
|
shellWrapperName = "ya";
|
||||||
|
plugins = with inputs.yazi-plugins.packages.${system}; {
|
||||||
|
inherit chmod starship;
|
||||||
|
};
|
||||||
|
# initLua = /* lua */ '' '';
|
||||||
|
keymap = {
|
||||||
|
keymap = [
|
||||||
|
{ on = "<Esc>"; 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 = "<C-w>"; run = "close"; desc = "Close the current tab, or quit if it is last tab"; }
|
||||||
|
{ on = "<C-z>"; 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 = "<Up>"; run = "arrow -1"; desc = "Move cursor up"; }
|
||||||
|
{ on = "<Down>"; run = "arrow 1"; desc = "Move cursor down"; }
|
||||||
|
{ on = "<C-u>"; run = "arrow -50%"; desc = "Move cursor up half page"; }
|
||||||
|
{ on = "<C-d>"; run = "arrow 50%"; desc = "Move cursor down half page"; }
|
||||||
|
{ on = "<C-b>"; run = "arrow -100%"; desc = "Move cursor up one page"; }
|
||||||
|
{ on = "<C-f>"; run = "arrow 100%"; desc = "Move cursor down one page"; }
|
||||||
|
{ on = "<PageUp>"; run = "arrow -100%"; desc = "Move cursor up one page"; }
|
||||||
|
{ on = "<PageDown>"; run = "arrow 100%"; desc = "Move cursor down one page"; }
|
||||||
|
{ on = [ "g" "g" ]; run = "arrow -99999999"; desc = "Move cursor to the top"; }
|
||||||
|
{ on = [ "g" "e" ]; run = "arrow 99999999"; 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" "<Space>" ]; 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 = "<Left>"; run = "leave"; desc = "Go back to the parent directory"; }
|
||||||
|
{ on = "<Right>"; 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"; }
|
||||||
|
# Seeking
|
||||||
|
{ 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 = "<Space>"; run = [ "select --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 = "<C-a>"; run = "select_all --state=true"; desc = "Select all files"; }
|
||||||
|
{ on = "<C-r>"; run = "select_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 = "<Enter>"; run = "open"; desc = "Open selected files"; }
|
||||||
|
{ on = "<S-Enter>"; 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 = "<C-->"; 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 = "<C-s>"; 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"; }
|
||||||
|
# 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"; }
|
||||||
|
# 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 = "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"; }
|
||||||
|
{ 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)"; }
|
||||||
|
# Tab
|
||||||
|
{ on = "t"; run = "tab_create --current"; desc = "Create a new tab with CWD"; }
|
||||||
|
{ 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_switch -1 --relative"; desc = "Switch to the previous tab"; }
|
||||||
|
{ on = "]"; run = "tab_switch 1 --relative"; desc = "Switch to the next tab"; }
|
||||||
|
{ on = "{"; run = "tab_swap -1"; desc = "Swap current tab with previous tab"; }
|
||||||
|
{ on = "}"; run = "tab_swap 1"; desc = "Swap current tab with next tab"; }
|
||||||
|
# Task
|
||||||
|
{ on = "w"; run = "tasks_show"; desc = "Show task manager"; }
|
||||||
|
# Hel
|
||||||
|
{ on = "~"; run = "help"; desc = "Open help"; }
|
||||||
|
{ on = "<F1>"; run = "help"; desc = "Open help"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
settings = {
|
settings = {
|
||||||
manager = {
|
manager = {
|
||||||
layout = [2 3 4];
|
layout = [2 3 4];
|
||||||
@@ -21,16 +156,11 @@
|
|||||||
linemode = "size";
|
linemode = "size";
|
||||||
show_hidden = false;
|
show_hidden = false;
|
||||||
show_symlink = true;
|
show_symlink = true;
|
||||||
append_keymap = [
|
|
||||||
{ on = [ "<C-g>" ]; run = "lazygit"; desc = "Run Lazygit in current directory"; }
|
|
||||||
{ on = [ "<C-D>" ]; run = ''shell 'dragon -x -i -T "$1"' --confirm''; }
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
opener = {
|
opener = {
|
||||||
"edit" = [
|
"edit" = [
|
||||||
{ run = ''hx "$@"''; desc = "helix"; block = true; }
|
{ run = ''hx "$@"''; desc = "helix"; block = true; }
|
||||||
{ run = ''codium "$@"''; orphan = true;}
|
{ run = ''codium "$@"''; desc = "helix"; orphan = true; }
|
||||||
{ run = ''nano "$@"''; desc = "nano"; block = true;}
|
|
||||||
];
|
];
|
||||||
"play" = [
|
"play" = [
|
||||||
{ run = ''mpv "$@"''; }
|
{ run = ''mpv "$@"''; }
|
||||||
@@ -55,8 +185,8 @@
|
|||||||
{ run = ''fontforge "$@"''; desc = "fortforge"; }
|
{ run = ''fontforge "$@"''; desc = "fortforge"; }
|
||||||
];
|
];
|
||||||
"document" = [
|
"document" = [
|
||||||
{ run = ''zathura "$@"''; desc = "zathura"; }
|
{ run = ''zathura "$@"''; desc = "zathura"; orphan = true; }
|
||||||
{ run = ''xournal "$@"''; desc = "xournal"; }
|
{ run = ''xournal "$@"''; desc = "xournal"; orphan = true; }
|
||||||
{ run = ''firefox "$@"''; desc = "firefox"; }
|
{ run = ''firefox "$@"''; desc = "firefox"; }
|
||||||
];
|
];
|
||||||
"browser" = [
|
"browser" = [
|
||||||
@@ -94,7 +224,8 @@
|
|||||||
{ mime = "image/*"; use = "image"; }
|
{ mime = "image/*"; use = "image"; }
|
||||||
{ mime = "image/svg"; use = [ "image" "edit" ]; }
|
{ mime = "image/svg"; use = [ "image" "edit" ]; }
|
||||||
|
|
||||||
{ mime = "video/*"; use = "video"; }
|
{ mime = "video/*"; use = "play"; }
|
||||||
|
{ mime = "audio/*"; use = "play"; }
|
||||||
|
|
||||||
{ mime = "application/x-httpd-php"; use = [ "edit" "browser" ]; }
|
{ mime = "application/x-httpd-php"; use = [ "edit" "browser" ]; }
|
||||||
{ mime = "application/json"; use = "edit"; }
|
{ mime = "application/json"; use = "edit"; }
|
||||||
|
|||||||
Reference in New Issue
Block a user