diff options
Diffstat (limited to '.config/lf')
| -rwxr-xr-x | .config/lf/cleaner | 4 | ||||
| -rw-r--r-- | .config/lf/icons | 160 | ||||
| -rw-r--r-- | .config/lf/lfrc | 119 | ||||
| -rw-r--r-- | .config/lf/mvdirs | 17 | ||||
| -rwxr-xr-x | .config/lf/scope | 9 |
5 files changed, 309 insertions, 0 deletions
diff --git a/.config/lf/cleaner b/.config/lf/cleaner new file mode 100755 index 0000000..a184d84 --- /dev/null +++ b/.config/lf/cleaner @@ -0,0 +1,4 @@ +#!/bin/sh +if [ -n "$FIFO_UEBERZUG" ]; then + printf '{"action": "remove", "identifier": "PREVIEW"}\n' > "$FIFO_UEBERZUG" +fi diff --git a/.config/lf/icons b/.config/lf/icons new file mode 100644 index 0000000..87d924b --- /dev/null +++ b/.config/lf/icons @@ -0,0 +1,160 @@ +di +fi +ln +or +ex +*.vimrc +*.viminfo +*.gitignore +*.c +*.cc +*.clj +*.coffee +*.cpp +*.css +*.d +*.dart +*.erl +*.exs +*.fs +*.go +*.h +*.hh +*.hpp +*.hs +*.html +*.java +*.jl +*.js +*.json +*.lua +*.md +*.php +*.pl +*.pro +*.py +*.rb +*.rs +*.scala +*.ts +*.vim +*.cmd +*.ps1 +*.sh +*.bash +*.zsh +*.fish +*.tar +*.tgz +*.arc +*.arj +*.taz +*.lha +*.lz4 +*.lzh +*.lzma +*.tlz +*.txz +*.tzo +*.t7z +*.zip +*.z +*.dz +*.gz +*.cz +*.lrz +*.lz +*.lzo +*.xz +*.zst +*.tzst +*.bz2 +*.bz +*.tbz +*.tbz2 +*.tz +*.deb +*.rpm +*.jar +*.war +*.ear +*.sar +*.rar +*.alz +*.ace +*.zoo +*.cpio +*.7z +*.rz +*.cab +*.wim +*.swm +*.dwm +*.esd +*.jpg +*.jpeg +*.mjpg +*.mjpeg +*.gif +*.bmp +*.pbm +*.pgm +*.ppm +*.tga +*.xbm +*.xpm +*.tif +*.tiff +*.png +*.svg +*.svgz +*.mng +*.pcx +*.mov +*.mpg +*.mpeg +*.m2v +*.mkv +*.webm +*.ogm +*.mp4 +*.m4v +*.mp4v +*.vob +*.qt +*.nuv +*.wmv +*.asf +*.rm +*.rmvb +*.flc +*.avi +*.fli +*.flv +*.gl +*.dl +*.xcf +*.xwd +*.yuv +*.cgm +*.emf +*.ogv +*.ogx +*.aac +*.au +*.flac +*.m4a +*.mid +*.midi +*.mka +*.mp3 +*.mpc +*.ogg +*.ra +*.wav +*.oga +*.opus +*.spx +*.xspf +*.pdf +*.nix diff --git a/.config/lf/lfrc b/.config/lf/lfrc new file mode 100644 index 0000000..e7b2c17 --- /dev/null +++ b/.config/lf/lfrc @@ -0,0 +1,119 @@ +# Basic vars +set sixel true +set shellopts '-eu' +set ifs "\n" +set scrolloff 10 +set icons +set hidden true +set drawbox true +set period 1 +set previewer '~/.config/lf/scope' +set autoquit true + +# 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;; + text/*|application/x-subrip) $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\|jxl\|jpeg\|gif\|webp\|avif\|tif\|ico\)\(_large\)*$" | + setsid -f nsxiv -aio 2>/dev/null | while read -r file; do + [ -z "$file" ] && continue + lf -remote "send select \"$file\"" + lf -remote "send toggle" + done & + ;; + 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 ;; + application/pgp-encrypted) $EDITOR $fx ;; + *) 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" ] && ext $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=$(cat ~/.config/lf/mvdirs | fzf ) + for x in $fx; do + eval mv -iv \"$x\" \"$dest\" + done && + notify-send "🚚 File(s) moved." "File(s) moved to $dest." +}} + +cmd genwall "$1" + +# Bindings +map <c-f> $lf -remote "send $id select \"$(fzf)\"" +map D delete +map p paste +map dd cut +map M moveto +map yy copy +map H top +map E extract +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; cmd-end # at the very end +map c push A<c-u> # new rename +map I :rename; cmd-home # at the very beginning +map i :rename # before extension +map a :rename; cmd-right # after extension +map br $vimv +map bg $genwall $f + +map <c-e> down +map <c-y> up +map V push :!nvim<space> + +map W $setsid -f $TERMINAL >/dev/null 2>&1 + +map Y $printf "%s" "$fx" | xclip -selection clipboard +map T $nsxiv -t "$(pwd)" # opens thumbnail mode +map <c-l> unselect + +# movement +map gd cd ~/dox/ +map gD cd ~/dl/ +map gp cd ~/pix +map gc cd ~/.config +map gC cd ~/.cache +map gr cd ~/code/repos +map gv cd ~/vids/ +map gm cd ~/media/movies +map gM cd ~/media +map gn cd ~/music +map gb cd ~/.local/bin +map gt cd /tmp +map gs cd ~/.local/share diff --git a/.config/lf/mvdirs b/.config/lf/mvdirs new file mode 100644 index 0000000..5edb30c --- /dev/null +++ b/.config/lf/mvdirs @@ -0,0 +1,17 @@ +$HOME/.cache +$HOME/.config +$HOME +$HOME/.local/bin +$HOME/.local/src +$HOME/.local/share +$HOME/dl +$HOME/dox +$HOME/music +$HOME/movies +$HOME/vids +$HOME/pix +$HOME/pix/ss +$HOME/pix/wallpapers/ +$HOME/dev/ +$HOME/dev/ +/tmp diff --git a/.config/lf/scope b/.config/lf/scope new file mode 100755 index 0000000..11e54e1 --- /dev/null +++ b/.config/lf/scope @@ -0,0 +1,9 @@ +#!/bin/sh +case "$(file -Lb --mime-type -- "$1")" in + image/*) + chafa -f sixel -s "$2x$3" --animate off --polite on -t 1 --bg black "$1" + ;; + text/*) + bat "$1" + ;; +esac |
