65 lines
2 KiB
Nix
65 lines
2 KiB
Nix
{ pkgs, ... }:
|
|
let
|
|
tomlGenerate = (pkgs.formats.toml { }).generate;
|
|
bashIntegration = ''
|
|
function ya() {
|
|
tmp="$(mktemp -t "yazi-cwd.XXXXX")"
|
|
yazi --cwd-file="$tmp"
|
|
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
|
cd -- "$cwd"
|
|
fi
|
|
rm -f -- "$tmp"
|
|
}
|
|
'';
|
|
in
|
|
{
|
|
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;
|
|
sort_reverse = false;
|
|
};
|
|
|
|
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;
|
|
# enableBashIntegration = true;
|
|
# enableZshIntegration = true;
|
|
# };
|
|
programs.bash.initExtra = bashIntegration;
|
|
programs.zsh.initExtra = bashIntegration;
|
|
|
|
}
|