{pkgs, ...}: {
  programs.yazi = let
    # https://github.com/iynaix/dotfiles/blob/8bb1568019ea26f034ac1af9c499b3ff102391a5/home-manager/shell/yazi.nix#L9-L11
    mkYaziPlugin = name: text: {
      "${name}" = toString (pkgs.writeTextDir "${name}.yazi/init.lua" text) + "/${name}.yazi";
    };
  in {
    enable = true;
    enableFishIntegration = true;
    plugins = mkYaziPlugin "smart-enter" ''
      return {
      	entry = function()
          local h = cx.active.current.hovered
          ya.manager_emit(h and h.cha.is_dir and "enter" or "open", { hovered = true })
        end,
      }
    '';
    keymap.manager.prepend_keymap = [
      {
        on = "l";
        run = "plugin --sync smart-enter";
        desc = "Enter the child directory, or open the file";
      }
    ];
  };
}