# Yeet's lf settings
|
|
|
|
# Basic vars
|
|
|
|
set previewer lf-ueberzug-previewer
|
|
set cleaner lf-ueberzug-cleaner
|
|
set preview true
|
|
set drawbox true
|
|
set icons true
|
|
set ignorecase true
|
|
|
|
set shell zsh
|
|
set ifs "\n"
|
|
set scrolloff 10
|
|
set period 1
|
|
set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
|
|
|
|
# cmds/functions
|
|
cmd open ${{
|
|
case $(file --mime-type $f -b) in
|
|
image/vnd.djvu|application/pdf|application/octet-stream) setsid -f zathura $fx >/dev/null 2>&1 ;;
|
|
text/*) $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\)*$" | sxiv -aio 2>/dev/null | lf-select ;;
|
|
audio/*) mpv --audio-display=no $f ;;
|
|
video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;;
|
|
application/pdf|application/vnd*|application/epub*) setsid -f zaread $fx >/dev/null 2>&1 ;;
|
|
*) for f in $fx; do setsid -f $OPENER $f >/dev/null 2>&1; done;;
|
|
esac
|
|
}}
|
|
|
|
cmd mkdir $mkdir -p "$(echo $* | tr ' ' '\ ')"
|
|
|
|
cmd select_dir ${{
|
|
echo $f > /tmp/lf-chrome-choosed
|
|
lf -remote "send $id quit"
|
|
}}
|
|
|
|
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
|
|
}}
|
|
|
|
cmd moveto ${{
|
|
clear; tput cup $(($(tput lines)/3)); tput bold
|
|
set -f
|
|
clear; echo "Move to where?"
|
|
dest="$(cut -d' ' -f2- ${XDG_CONFIG_HOME:-$HOME/.config}/zsh/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="$(cut -d' ' -f2- ${XDG_CONFIG_HOME:-$HOME/.config}/zsh/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 ${{
|
|
echo "$fx" > /tmp/c
|
|
echo convert "$fx" "$HOME/.local/backgrounds/wall.jpg" > /tmp/d
|
|
convert "$fx" "$HOME/.local/backgrounds/wall.jpg"
|
|
feh --no-fehbg --bg-fill "$HOME/.local/backgrounds/wall.jpg"
|
|
}}
|
|
|
|
|
|
cmd git_branch ${{
|
|
git branch | fzf | xargs git checkout
|
|
pwd_shell=$(pwd)
|
|
lf -remote "send $id updir"
|
|
lf -remote "send $id cd \"$pwd_shell\""
|
|
}}
|
|
|
|
cmd on-cd &{{
|
|
# display git repository status in your prompt
|
|
source /usr/share/git/completion/git-prompt.sh
|
|
GIT_PS1_SHOWDIRTYSTATE=auto
|
|
GIT_PS1_SHOWSTASHSTATE=auto
|
|
GIT_PS1_SHOWUNTRACKEDFILES=auto
|
|
GIT_PS1_SHOWUPSTREAM=auto
|
|
GIT_PS1_COMPRESSSPARSESTATE=auto
|
|
git=$(__git_ps1 " [GIT BRANCH:> %s]") || true
|
|
fmt="\033[32;1m%u@%h\033[0m:\033[34;1m%w\033[0m\033[33;1m$git\033[0m"
|
|
lf -remote "send $id set promptfmt \"$fmt\""
|
|
}}
|
|
|
|
cmd bulkrename $vidir
|
|
cmd targz %tar cvzf "$f.tar.gz" "$f"
|
|
|
|
# Bindings
|
|
map <c-f> $lf -remote "send $id select '$(fzf)'"
|
|
map gh
|
|
map gg top
|
|
map D $rm -r "$fx"
|
|
map E extract
|
|
map T targz
|
|
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 r 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
|
|
|
|
map <c-e> down
|
|
map <c-y> up
|
|
map V push :!vim<space>
|
|
|
|
map cd push !cd<space>
|
|
map sd select_dir
|
|
|
|
# Movement
|
|
map ~ cd ~
|
|
map g/ cd /
|
|
map gm cd /media
|
|
map gd cd ~/.dotfiles
|
|
map gc cd ~/.config
|
|
map gs cd ~/.local/bin
|
|
|
|
# Git Mappings
|
|
map gib :git_branch
|
|
map gip ${{clear; git pull --rebase || true; echo "press ENTER"; read ENTER}}
|
|
map gis ${{clear; git status; echo "press ENTER"; read ENTER}}
|
|
map gil ${{clear; git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit}}
|
|
|