{ 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") ]; }; }; }