80 lines
3.1 KiB
Nix
80 lines
3.1 KiB
Nix
{ config, 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" = { lib, config, ... }: {
|
|
programs.yazi = {
|
|
enable = true;
|
|
enableFishIntegration = true;
|
|
plugins = with pkgs.yaziPlugins; {
|
|
duckdb = duckdb;
|
|
jump-to-char = jump-to-char;
|
|
yafg = { # FIXME: can not use fzf mode because of fish :/
|
|
package = yafg;
|
|
setup = true;
|
|
settings = {
|
|
toggle-mode-key = "alt-r";
|
|
editor = "nvim";
|
|
args = [ "--noplugin" ];
|
|
file-arg-format = "+{row} {file}";
|
|
};
|
|
};
|
|
# FIXME: these don't work
|
|
# compress = compress; # nil value unique_name issue
|
|
# bookmarks = bookmarks; # rely on deprecated api
|
|
# relative-motions = relative-motions; # nil value mgr_emit
|
|
} // make_plugin ["starship" "close-and-restore-tab" "full-border"] ;
|
|
|
|
|
|
keymap = {
|
|
mgr.prepend_keymap = [
|
|
{on = [ "r" ]; description = "rename file"; run = "rename --empty=stem --cursor=start";}
|
|
{on = [ "R" ]; description = "rename file (without empty)"; run = "rename --cursor=before_ext";}
|
|
|
|
{on = [ "f" "m" "f" ]; description = "use fmf"; run = "plugin yafg";}
|
|
{on = [ "F" ]; description = "Jump to char"; run = "plugin jump-to-char";}
|
|
{on = [ "<C-t>" ]; description = "Restore previously closed tab"; run = "plugin close-and-restore-tab restore";}
|
|
|
|
# {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 = [ "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 = [ "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";}
|
|
|
|
];
|
|
};
|
|
};
|
|
|
|
|
|
# append extra init.lua stuff after home-manager generates the file
|
|
xdg.configFile."yazi/init.lua".text =''
|
|
-- this is really for termfilechooser, where i want to start with the rename menu open
|
|
ya.emit("rename", {
|
|
empty = "stem",
|
|
cursor = "start",
|
|
})
|
|
'';
|
|
};
|
|
}
|