reNixos/hand7s/programs/yazi.nix
s0me1newithhand7s c5f949506a staging(no atomic commits thank to git-hooks)
Signed-off-by: s0me1newithhand7s <git+me@hand7s.org>
2026-03-25 17:56:18 +03:00

233 lines
4.5 KiB
Nix

{
pkgs,
lib,
...
}: {
programs = {
yazi = {
enable = true;
enableFishIntegration = true;
enableNushellIntegration = true;
shellWrapperName = "yz";
settings = {
mgr = {
sort_by = "natural";
sort_sensitive = true;
sort_reverse = false;
sort_translit = true;
linemode = "size";
show_hidden = true;
show_symlink = true;
prepend_keymap = [
{
on = "R";
run = "plugin rsync";
desc = "Copy files using rsync";
}
{
on = "c, m";
run = "plugin chmod";
desc = "Chmod on selected files";
}
];
};
preview = {
tab_size = 4;
image_filter = "lanczos3";
image_quality = 90;
};
opener = {
"play" = [
{
run = ''${lib.getExe pkgs.mpv} --vo=tct "%s"'';
block = true;
for = "unix";
}
];
"view" = [
{
run = ''${lib.getExe pkgs.viu} -t "%s"'';
block = true;
for = "unix";
}
];
"edit" = [
{
run = ''${lib.getExe pkgs.helix} "%s"'';
block = true;
for = "unix";
}
];
"doc" = [
{
run = ''${lib.getExe pkgs.tdf} "%s"'';
block = true;
for = "unix";
}
];
"hex" = [
{
run = ''${lib.getExe pkgs.hexyl} "$s"'';
}
];
"exfil" = [
{
run = ''${lib.getExe pkgs.ouch} de "%s"'';
block = true;
for = "unix";
}
];
"book" = [
{
run = ''${lib.getExe pkgs.epr} "%s"'';
block = true;
for = "unix";
}
];
"open" = [
{
run = ''${lib.getExe' pkgs.xdg-utils "xdg-open"} "%s"'';
orphan = true;
for = "unix";
}
];
};
open = {
rules = [
{
mime = "video/*";
use = [
"play"
"open"
];
}
{
mime = "audio/*";
use = [
"play"
"open"
];
}
{
mime = "application/epub+zip";
use = [
"book"
"edit"
];
}
{
mime = "application/pdf";
use = [
"doc"
"open"
];
}
{
mime = "application/{octet-stream,x-executable,x-sharedlib,x-pie-executable}";
use = [
"hex"
"open"
];
}
{
mime = "application/vnd.*";
use = [
"open"
"edit"
];
}
{
mime = "font/*";
use = [
"open"
"edit"
];
}
{
mime = "application/{zip,rar,7z*,tar*,x-tar,x-bzip*,x-gzip,x-xz}";
use = [
"exfil"
"open"
];
}
{
mime = "text/*";
use = [
"edit"
"open"
];
}
{
mime = "*";
use = [
"edit"
"open"
];
}
];
};
input = {
cursor_blink = true;
};
plugin = {
prepend_fetchers = [
{
id = "git";
name = "*";
run = "git";
}
{
id = "git";
name = "*/";
run = "git";
}
];
};
};
plugins = {
inherit
(pkgs.yaziPlugins)
starship
rsync
git
chmod
full-border
;
};
initLua = ''
require("full-border"):setup({ type = ui.Border.ROUNDED })
require("starship"):setup()
require("git"):setup()
'';
};
};
}