{ config, pkgs, ... }: { home.file."${config.xdg.configHome}/lf" = { source = ./files; recursive = true; }; programs.lf = { enable = true; settings = { icons = true; autoquit = true; mouse = true; number = true; relativenumber = true; cursorpreviewfmt = ""; previewer = toString (pkgs.writeShellScript "script" '' case "''$1" in *.tar*) tar tf "''$1";; *.zip) unzip -l "''$1";; *.rar) unrar l "''$1";; *.7z) 7z l "''$1";; *.pdf) ${pkgs.poppler_utils}/bin/pdftotext "''$1" -;; *) ${pkgs.highlight}/bin/highlight -O ansi "''$1";; esac ''); }; keybindings = { "" = "quit"; "" = "half-up"; "." = "set hidden!"; "o" = ''$nvim -c "lua require(\"oil\").open(\"$PWD\")"''; "-" = ''$nvim -c "lua require(\"oil\").open(\"$PWD\")"''; "" = "open"; "" = ":jump "; }; commands = { jump = '' ''${{ res=$(zsh -c "source ${../zsh/files/functions.zsh} && find_global d") lf -remote "send $id cd \"$res\"" }} ''; }; cmdKeybindings = { q = "quit"; }; }; }