# Personal lf conf # Inspired by the official example conf and Luke Smith's voidrice's set icons set scrolloff 10 set ratios 1:4:3 set period 1 set ifs "\n" set info size set previewer ~/.local/bin/scope # Custom commands cmd on-cd &{{ # '&' commands run silently in background (which is what we want here), # but are not connected to stdout. # To make sure our escape sequence still reaches stdout we pipe it to /dev/tty printf "\033]0; lf - $PWD\007" > /dev/tty }} on-cd cmd mkdir $mkdir -p "$(echo $* | tr ' ' '\ ')" cmd delete ${{ clear; tput cup $(($(tput lines)/3)); tput bold set -f printf "%s\n\t" "$fx" printf "delete?[y/N]" read ans [ $ans = "y" ] && rm -rf -- $fx }} # compress current file or selected files with tar and gunzip cmd tar ${{ set -f mkdir $1 cp -r $fx $1 tar -czf $1.tar.gz $1 rm -rf $1 }} # extract the current file with the right command # (xkcd link: https://xkcd.com/1168/) cmd extract ${{ set -f case $f in *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; *.tar.gz|*.tgz) tar xzvf $f;; *.tar.xz|*.txz) tar xJvf $f;; *.zip) unzip $f;; *.rar) unrar x $f;; *.7z) 7z x $f;; esac }} # change dir with fzf cmd fzf_jump ${{ res="$(find . -type d | fzf --header='Jump to location')" if [ -d "$res" ]; then cmd="cd" else cmd="select" fi lf -remote "send $id $cmd \"$res\"" }} # drag and drop prompt cmd dragon $dragon-drag-and-drop -a $fx cmd dragon_drop $cp $(dragon-drag-and-drop --target | sed 's/file:\/\///g') . # copy path to clipboard cmd yank-path &printf '%s' "$fx" | wl-copy # Bindings map A rename map c map cc clear map cd push :cd map cw push A # rename from zero map I push A # rename from the beginning map i push A # rename before extention map a push A # rename after extention map push :mkdir map reload map shell map D delete map shell map f :fzf_jump map t :dragon map T :dragon_drop map W $setsid $TERMINAL & # open new terminal window map Y :yank-path map L $LESSOPEN='| ~/.local/bin/scope %s' less -R $f # open file preview in pager