169 lines
3.3 KiB
Plaintext
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/*
|