From a9cc69c36ce430f6aa0c4095c37e0b3aac63eee2 Mon Sep 17 00:00:00 2001 From: Filippo Berto Date: Tue, 19 Sep 2023 00:43:31 +0200 Subject: [PATCH] Yazi: simple config --- modules/hm/yazi.nix | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/modules/hm/yazi.nix b/modules/hm/yazi.nix index 9112cd1..8285431 100644 --- a/modules/hm/yazi.nix +++ b/modules/hm/yazi.nix @@ -1,6 +1,45 @@ { pkgs, ... }: +let tomlGenerate = (pkgs.formats.toml { }).generate; in { - home.packages = [ pkgs.unstable_pkgs.yazi pkgs.ffmpegthumbnailer pkgs.exiftool ]; + home.packages = [ pkgs.unstable_pkgs.yazi pkgs.ffmpegthumbnailer pkgs.exiftool pkgs.mediainfo ]; + + xdg.configFile."yazi/yazi.toml".source = tomlGenerate "yazi.toml" { + manager = { + sort_by = "natural"; + sort_dir_first = true; + }; + + opener = { + folder = [ + { exec = ''xdg-open "$@"''; display_name = "Open folder"; } + { exec = ''$EDITOR "$@"''; } + ]; + archive = [ + { exec = ''file-roller "$1"''; display_name = "Open with File Roller"; } + { exec = ''unar "$1"''; display_name = "Extract here"; } + ]; + text = [ + { exec = ''$EDITOR "$@"''; block = true; display_name = "Open with editor"; } + ]; + image = [ + { exec = ''xdg-open "$@"''; display_name = "Open"; } + { exec = '''exiftool "$1"; echo "Press enter to exit"; read''; block = true; display_name = "Show EXIF"; } + ]; + video = [ + { exec = ''mpv "$@"''; } + { exec = ''mediainfo "$1"; echo "Press enter to exit"; read''; block = true; display_name = "Show media info"; } + ]; + audio = [ + { exec = ''mpv "$@"''; } + { exec = '''mediainfo "$1"; echo "Press enter to exit"; read''; block = true; display_name = "Show media info"; } + ]; + fallback = [ + { exec = ''xdg-open "$@"''; display_name = "Open"; } + { exec = ''bat --pagin=always "$@"''; block = true; display_name = "Open with bat"; } + { exec = ''$EDITOR "$@"''; block = true; display_name = "Open with editor"; } + ]; + }; + }; # programs.yazi = { # enable = true;