nix-dotfiles/modules/hm/yazi.nix

157 lines
3.7 KiB
Nix

{ pkgs, ... }:
{
home = {
packages = [
pkgs.ffmpegthumbnailer
pkgs.exiftool
pkgs.mediainfo
pkgs.unar
pkgs.mpv
];
shellAliases.y = "yazi";
};
programs.yazi = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
settings = {
manager = {
sort_by = "natural";
sort_dir_first = true;
sort_reverse = false;
};
keymap = [
{ exec = "<C-s>"; on = [ "shell zsh --block --confirm" ]; }
];
opener = {
folder = [
{
run = ''nautilus "$@"'';
display_name = "Nautilus";
}
{
run = ''xdg-open "$@"'';
display_name = "Open folder";
}
{ run = ''$VISUAL "$@"''; }
];
archive = [
{
run = ''file-roller "$1"'';
display_name = "Open with File Roller";
}
{
run = ''unar "$1"'';
display_name = "Extract here";
}
{
run = ''xdg-open "$@"'';
display_name = "Open with default";
}
{ run = ''$VISUAL "$@"''; }
];
text = [
{ run = ''$VISUAL "$@"''; }
{
run = ''nvim "$@"'';
block = true;
display_name = "Open with NeoVIM";
}
{
run = ''hx "$@"'';
block = true;
display_name = "Open with Helix";
}
{
run = ''bat --pagin=always "$@"'';
block = true;
display_name = "Open with bat";
}
];
image = [
{
run = ''xdg-open "$@"'';
display_name = "Open";
}
{
run = ''eog "$@"'';
display_name = "Open with EOG";
}
{
run = '''exiftool "$1"; echo "Press enter to exit"; read'';
block = true;
display_name = "Show EXIF";
}
];
video = [
{
run = ''mpv "$@"'';
display_name = "Open with MPV";
}
{
run = ''umpv "$@"'';
display_name = "Open with uMPV";
}
{
run = ''totem "$@"'';
display_name = "Open with Totem";
}
{
run = ''mediainfo "$1"; echo "Press enter to exit"; read'';
block = true;
display_name = "Show media info";
}
{
run = ''xdg-open "$@"'';
display_name = "Open with default";
}
{ run = ''$VISUAL "$@"''; }
];
audio = [
{
run = ''mpv "$@"'';
display_name = "Open with MPV";
}
{
run = ''umpv "$@"'';
display_name = "Open with uMPV";
}
{
run = '''mediainfo "$1"; echo "Press enter to exit"; read'';
block = true;
display_name = "Show media info";
}
{
run = ''xdg-open "$@"'';
display_name = "Open with default";
}
{ run = ''$VISUAL "$@"''; }
];
fallback = [
{
run = ''xdg-open "$@"'';
display_name = "Open";
}
{
run = ''bat --pagin=always "$@"'';
block = true;
display_name = "Open with bat";
}
{
run = ''$VISUAL "$@"'';
block = true;
display_name = "Open with editor";
}
{
run = ''$EDITOR "$@"'';
block = true;
display_name = "Open with editor";
}
];
};
};
};
}