|
|
- # 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 zathura $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}}
-
|