nixos-configs/modules/desktop/file-manager.nix

91 lines
1.9 KiB
Nix
Raw Normal View History

2024-08-20 22:58:24 +02:00
{
config,
lib,
pkgs,
...
}:
2024-06-23 02:36:51 +02:00
2024-08-20 22:58:24 +02:00
let
cfg = config.modules.desktop.file-manager;
in
{
options.modules.desktop.file-manager = {
enable = lib.my.mkBoolOpt false;
};
config = lib.mkIf cfg.enable {
2024-06-23 02:36:51 +02:00
home-manager.users.${config.user.name} = {
programs.yazi = {
enable = true;
2024-10-13 22:52:21 +02:00
package = pkgs.yazi;
2024-06-23 02:36:51 +02:00
enableZshIntegration = true;
settings = {
manager = {
sort_by = "alphabetical";
linemode = "mtime";
};
2024-06-23 20:15:59 +02:00
preview = {
max_width = 1200;
max_height = 1800;
};
};
2024-06-25 03:22:38 +02:00
keymap = {
manager.prepend_keymap = [
{
on = [ "<C-s>" ];
run = ''shell "$SHELL" --block --confirm'';
desc = "Open shell here";
}
{
on = [ "y" ];
run = [
"yank"
''
shell --confirm 'for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list'
''
];
desc = "Copy files to clipboard";
}
];
2024-08-20 22:58:24 +02:00
input.prepend_keymap = [
{
on = [ "<Esc>" ];
run = "close";
desc = "Cancel input";
}
];
2024-06-25 03:22:38 +02:00
};
2024-06-23 20:15:59 +02:00
theme = {
status = {
separator_open = "";
separator_close = "";
separator_style = {
fg = "black";
bg = "black";
};
};
2024-06-23 02:36:51 +02:00
};
};
programs.zoxide = {
enable = true;
enableZshIntegration = true;
};
home = {
2024-10-13 22:52:21 +02:00
packages = with pkgs; [
2024-06-23 02:36:51 +02:00
ffmpegthumbnailer
unar
poppler
fd
ripgrep
ueberzugpp
exiftool
chafa
xdg-utils
];
};
};
};
}