71 lines
2.7 KiB
Nix
71 lines
2.7 KiB
Nix
{ lib, pkgs, ... }:
|
|
|
|
|
|
let
|
|
make_plugin = names: lib.listToAttrs (map (name: {
|
|
name = name;
|
|
value = {
|
|
package = pkgs.yaziPlugins.${name};
|
|
setup = true;
|
|
};
|
|
}) names);
|
|
in
|
|
{
|
|
home-manager.users.djai.programs.yazi = {
|
|
enable = true;
|
|
enableFishIntegration = true;
|
|
plugins = with pkgs.yaziPlugins; {
|
|
duckdb = duckdb;
|
|
compress = compress;
|
|
bookmarks = bookmarks;
|
|
clipboard = clipboard;
|
|
ouch = ouch;
|
|
rich-preview = rich-preview;
|
|
jump-to-char = jump-to-char;
|
|
yafg = {
|
|
package = yafg;
|
|
setup = true;
|
|
settings = {
|
|
toggle-mode-key = "alt-t";
|
|
editor = "nvim";
|
|
args = [ "--noplugin" ];
|
|
file-arg-format = "+{row} {file}";
|
|
};
|
|
};
|
|
relative-motions = relative-motions;
|
|
} // make_plugin ["starship" "close-and-restore-tab" "full-border"] ;
|
|
|
|
# FIXME: lots of these are wonky
|
|
keymap = {
|
|
mgr.prepend_keymap = [
|
|
{on = [ "F" "G" ]; description = "use fmf"; run = "plugin yafg";}
|
|
{on = [ "f" ]; description = "Jump to char"; run = "plugin jump-to-char";}
|
|
|
|
{on = [ "y" ]; description = "Yank selected files (copy)"; run = [ "yank" "plugin clipboard -- --action=copy" ];}
|
|
{on = [ "x" ]; description = "Yank selected files (cut)"; run = [ "yank --cut" "plugin clipboard -- --action=copy" ];}
|
|
{on = [ "<C-p>" ]; description = "Paste yanked clipboard files"; run = "plugin clipboard -- --action=paste";}
|
|
|
|
{on = [ "m" ]; description = "Save current position as bookmark "; run = "plugin bookmarks save";}
|
|
{on = [ "'" ]; description = "Jump to bookmark "; run = "plugin bookmarks jump";}
|
|
{on = [ "b" "d" ]; description = "Delete bookmark"; run = "plugin bookmarks delete";}
|
|
{on = [ "B" "D" ]; description = "Delete all bookmarks"; run = "plugin bookmarks delete_all";}
|
|
|
|
{on = [ "c" "a" "a" ]; description = "Archive selected files"; run = "plugin compress";}
|
|
{on = [ "c" "a" "p" ]; description = "Archive selected files (encrypted)"; run = "plugin compress -p";}
|
|
|
|
{on = [ "1" ]; run = "plugin relative-motions 1";}
|
|
{on = [ "2" ]; run = "plugin relative-motions 2";}
|
|
{on = [ "3" ]; run = "plugin relative-motions 3";}
|
|
{on = [ "4" ]; run = "plugin relative-motions 4";}
|
|
{on = [ "5" ]; run = "plugin relative-motions 5";}
|
|
{on = [ "6" ]; run = "plugin relative-motions 6";}
|
|
{on = [ "7" ]; run = "plugin relative-motions 7";}
|
|
{on = [ "8" ]; run = "plugin relative-motions 8";}
|
|
{on = [ "9" ]; run = "plugin relative-motions 9";}
|
|
|
|
{on = [ "<C-t>" ]; description = "Restore previously closed tab"; run = "plugin close-and-restore-tab restore";}
|
|
];
|
|
};
|
|
};
|
|
}
|