123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- # Luke's lf settings
- # Note on Image Previews
- # For those wanting image previews, like this system, there are four steps to
- # set it up. These are done automatically for LARBS users, but I will state
- # them here for others doing it manually.
- #
- # 1. ueberzug must be installed.
- # 2. The scope file (~/.config/lf/scope for me), must have a command similar to
- # mine to generate ueberzug images.
- # 3. A `set cleaner` line as below is a cleaner script.
- # 4. lf should be started through a wrapper script (~/.local/bin/lfub for me)
- # that creates the environment for ueberzug. This command can be be aliased
- # in your shellrc (`alias lf="lfub") or if set to a binding, should be
- # called directly instead of normal lf.
- # Basic vars
- set shellopts '-eu'
- set ifs "\n"
- set scrolloff 10
- set icons
- set period 1
- set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
- set cleaner '~/.config/lf/cleaner'
- set previewer '~/.config/lf/scope'
- # cmds/functions
- cmd open ${{
- case $(file --mime-type "$(readlink -f $f)" -b) in
- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;;
- image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;;
- text/*|application/json|inode/x-empty) $EDITOR $fx;;
- image/x-xcf) setsid -f gimp $f >/dev/null 2>&1 ;;
- image/svg+xml) display -- $f ;;
- image/*) rotdir $f | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" |
- setsid -f sxiv -aio 2>/dev/null | while read -r file; do
- [ -z "$file" ] && continue
- lf -remote "send select \"$file\""
- lf -remote "send toggle"
- done &
- ;;
- audio/*) mpv --audio-display=no $f ;;
- video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;;
- application/vnd*) setsid -f libreoffice "$f" >/dev/null 2>&1;;
- application/pdf|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;;
- application/pgp-encrypted) $EDITOR $fx ;;
- xopp) devour xournalpp $f;;
- sc) sc-im $f;;
- *) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;;
- esac
- }}
- cmd mkdir $mkdir -p "$(echo $* | tr ' ' '\ ')"
- cmd extract ${{
- clear; tput cup $(($(tput lines)/3)); tput bold
- set -f
- printf "%s\n\t" "$fx"
- printf "extract?[y/N]"
- read ans
- [ $ans = "y" ] && aunpack $fx
- }}
- 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
- }}
- cmd moveto ${{
- clear; tput cup $(($(tput lines)/3)); tput bold
- set -f
- clear; echo "Move to where?"
- dest="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|')" &&
- for x in $fx; do
- eval mv -iv \"$x\" \"$dest\"
- done &&
- notify-send "🚚 File(s) moved." "File(s) moved to $dest."
- }}
- cmd copyto ${{
- clear; tput cup $(($(tput lines)/3)); tput bold
- set -f
- clear; echo "Copy to where?"
- dest="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|')" &&
- for x in $fx; do
- eval cp -ivr \"$x\" \"$dest\"
- done &&
- notify-send "📋 File(s) copied." "File(s) copies to $dest."
- }}
- cmd setbg "$1"
- cmd bulkrename $vidir
- # Bindings
- map <c-f> $lf -remote "send $id select '$(fzf)'"
- map J $lf -remote "send $id cd $(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf)"
- map gh
- map g top
- map D delete
- map E extract
- map C copyto
- map M moveto
- map <c-n> push :mkdir<space>
- map <c-r> reload
- map <c-s> set hidden!
- map <enter> shell
- map x $$f
- map X !$f
- map o &mimeopen $f
- map O $mimeopen --ask $f
- map A rename # at the very end
- map c push A<c-u> # new rename
- map I push A<c-a> # at the very beginning
- map i push A<a-b><a-b><a-f> # before extention
- map a push A<a-b> # after extention
- map B bulkrename
- map b $setbg $f
- map <c-e> down
- map <c-y> up
- map V push :!nvim<space>
- map W $setsid -f $TERMINAL >/dev/null 2>&1
- map Y $printf "%s" "$fx" | xclip -selection clipboard
|