nix/user/common/yazi/module/Yazi.nix

92 lines
2 KiB
Nix

{ pkgs, setting, ... }: {
file = (pkgs.formats.toml {}).generate "YaziYaziConfig" {
manager = {
# linemode = "mtime";
mouse_events = [];
ratio = [ 1 4 3 ];
scrolloff = 1;
show_hidden = false;
show_symlink = true;
sort_by = "natural";
sort_dir_first = true;
sort_sensitive = true;
sort_translit = true;
};
preview = {
# image_filter = "triangle";
image_filter = "lanczos3";
image_quality = 80;
};
opener = let
openWith = app: "${app} \"$@\"";
in {
default = [{
desc = "Default";
orphan = true;
run = openWith "xdg-open";
}];
browser = [{
desc = "Browser";
orphan = true;
run = openWith setting.browser.bin;
}];
text = [{
desc = "Text";
block = true;
run = openWith "nvim";
}];
audio = [{
desc = "Audio";
orphan = true;
run = openWith "mpv --no-video";
}];
video = [{
desc = "Video";
orphan = true;
run = openWith "mpv";
}];
document = [{
desc = "Document";
orphan = true;
run = openWith "onlyoffice-desktopeditors";
}];
pdf = [{
desc = "Pdf";
orphan = true;
run = openWith "evince";
}];
image = [{
desc = "Image";
orphan = true;
run = openWith "loupe";
}];
archive = [{
desc = "Archive";
block = true;
run = openWith "unpack";
}];
};
open = {
rules = let
mkRule = mime: use: { inherit mime use; };
in [
(mkRule "application/gzip" "archive")
(mkRule "application/json" "text")
(mkRule "application/pdf" "pdf")
(mkRule "application/x-tar" "archive")
(mkRule "application/x-xz" "archive")
(mkRule "application/zip" "archive")
(mkRule "audio/*" "audio")
(mkRule "image/*" "image")
(mkRule "text/*" "text")
(mkRule "video/*" "video")
(mkRule "text/html" [ "browser" "text" ])
(mkRule "application/vnd.openxmlformats-officedocument.*" "document")
];
};
};
}