dotfiles/.config/lf/lfrc

169 lines
3.3 KiB
Plaintext

set icons true
set ignorecase true
set drawbox
# interpreter for shell commands
set shell sh
set shellopts '-eu'
set previewer ctpv
set cleaner ctpvclear
&ctpv -s $id
&ctpvquit $id
cmd mkfile ${{
printf "File Name: "
read ans
$EDITOR $ans
}}
cmd edit-config ${{
$EDITOR ~/.config/lf/lfrc
lf -remote "send $id source ~/.config/lf/lfrc"
}}
cmd paste &{{
set -- $(cat ~/.local/share/lf/files)
mode="$1"
shift
case "$mode" in
copy)
rsync -av --ignore-existing --progress -- "$@" . |
stdbuf -i0 -o0 -e0 tr '\r' '\n' |
while IFS= read -r line; do
lf -remote "send $id echo $line"
done
;;
move) mv -n -- "$@" .;;
esac
rm ~/.local/share/lf/files
lf -remote "send clear"
}}
cmd setwallpaper %swww img "$f" --transition-type right --transition-fps 60
cmd fzf_jump ${{
res="$(find . | fzf --reverse --header='Jump to location' | sed 's/\\/\\\\/g;s/"/\\"/g')"
if [ -d "$res" ] ; then
cmd="cd"
elif [ -f "$res" ] ; then
cmd="select"
else
exit 0
fi
lf -remote "send $id $cmd \"$res\""
}}
cmd fzf_search ${{
res="$( \
RG_PREFIX="rg --column --line-number --no-heading --color=always \
--smart-case "
FZF_DEFAULT_COMMAND="$RG_PREFIX ''" \
fzf --bind "change:reload:$RG_PREFIX {q} || true" \
--ansi --layout=reverse --header 'Search in files' \
| cut -d':' -f1
)"
[ ! -z "$res" ] && lf -remote "send $id select \"$res\""
}}
cmd open &{{
case "$f" in
*.pdf|*.epub) $(zathura "$f");;
*.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx) $(mpv "$f");;
*.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.tiff|*.gif|*.jfif|*.ico) $(imv "$f") ;;
*) lf -remote "send $id \$$EDITOR \$fx";;
esac
}}
cmd unarchive ${{
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
}}
cmd tar ${{
set -f
mkdir $1
cp -r $fx $1
tar czf $1.tar.gz $1
rm -rf $1
}}
cmd zip ${{
set -f
mkdir $1
cp -r $fx $1
zip -r $1.zip $1
rm -rf $1
}}
# Trash bindings
cmd trash ${{
files=$(printf "$fx" | tr '\n' ';')
while [ "$files" ]; do
file=${files%%;*}
trash-put "$(basename "$file")"
if [ "$files" = "$file" ]; then
files=''
else
files="${files#*;}"
fi
done
}}
cmd restore_trash ${{
trash-restore
}}
map . set hidden!
# move current file or selected files to trash folder
# (also see 'man mv' for backup/overwrite options)
cmd trash %set -f; mv $fx ~/.trash
# make sure trash folder exists
%mkdir -p ~/.trash
map dd trash
map dr restore_trash
map y copy
map p paste
map x cut
map f :fzf_jump
map gf :fzf_search
map <enter> open
map R reload
map bg setwallpaper
map C edit-config
map gh cd ~
map gd cd ~/Downloads
map gD cd ~/Documents
map gc cd ~/.config
map gr cd ~/repos
map gp cd ~/Pictures
map gw cd ~/Pictures/wallpapers
map gs cd ~/Pictures/screenshots
map gv cd ~/Videos
map gm cd ~/Music
map gt cd ~/.local/share/Trash/files
map tC rm -rf ~/.local/share/Trash/files/*