| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- # most things here are inherited from Luke Smith's lf settings
- # 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/*)
- # We use rotdir to make sure the current file is the first one imv shows,
- # then we pass the rest of the directory's images to imv for scrolling.
- rotdir "$f" | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|tif\|ico\)\(_large\)*$" |
- xargs -d '\n' setsid -f imv >/dev/null 2>&1 &
- ;;
- 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 t $tesseract -l deu $f - | wl-copy
- map W $setsid -f $TERMINAL >/dev/null 2>&1
- map Y $printf "%s" "$fx" | wl-copy
- # Force a redraw to clear Kitty images when moving selection
- # cmd on-select &{{
- # kitten icat --clear --stdin no > /dev/tty
- # lf -remote "send $id redraw"
- # }}
|