{ ... }: { config.dendritic.features.filemanager-yazi = { homeModules = [ ( { pkgs, lib, ... }: { home.packages = [ pkgs.ueberzugpp ]; programs.yazi = { enable = true; enableZshIntegration = true; shellWrapperName = "y"; plugins = { starship = pkgs.yaziPlugins.starship; full-border = pkgs.yaziPlugins.full-border; chmod = pkgs.yaziPlugins.chmod; compress = pkgs.yaziPlugins.compress; smart-paste = pkgs.yaziPlugins.smart-paste; smart-enter = pkgs.yaziPlugins.smart-enter; smart-filter = pkgs.yaziPlugins.smart-filter; }; settings = { yazi = { ratio = [ 1 4 3 ]; sort_by = "natural"; sort_sensitive = true; sort_reverse = false; sort_dir_first = true; linemode = "none"; show_hidden = true; show_symlink = true; }; preview = { image_filter = "lanczos3"; image_quality = 90; tab_size = 1; max_width = 600; max_height = 900; cache_dir = ""; ueberzug_scale = 1; ueberzug_offset = [ 0 0 0 0 ]; }; tasks = { micro_workers = 5; macro_workers = 10; bizarre_retry = 5; }; }; initLua = '' require("starship"):setup() require("full-border"):setup() require("smart-enter"):setup { open_multi = true, } ''; keymap = { mgr.prepend_keymap = [ { on = [ "c" "a" "a" ]; run = "plugin compress"; desc = "Archive selected files"; } { on = [ "c" "a" "p" ]; run = "plugin compress -p"; desc = "Archive selected files (password)"; } { on = [ "c" "a" "h" ]; run = "plugin compress -ph"; desc = "Archive selected files (password+header)"; } { on = [ "c" "a" "l" ]; run = "plugin compress -l"; desc = "Archive selected files (compression level)"; } { on = [ "c" "a" "u" ]; run = "plugin compress -phl"; desc = "Archive selected files (password+header+level)"; } { on = "p"; run = "plugin smart-paste"; desc = "Paste into the hovered directory or CWD"; } { on = "l"; run = "plugin smart-enter"; desc = "Enter the child directory, or open the file"; } { on = "F"; run = "plugin smart-filter"; desc = "Smart filter"; } ]; }; }; } ) ]; }; }