af2710799b
application/octet-stream mime-type is used for arbitrary binary files, so the best guess at opening those kind of should be based on the extension. before this all of this kind of files were tried to be opened with zathura, now it is the last resort in case the file extension is unknown.
158 lines
5.4 KiB
Text
158 lines
5.4 KiB
Text
# Luke's lf settings
|
|
|
|
|
|
# Note on Image Previews
|
|
# For those wanting image previews, like this system, there are four steps to
|
|
# set it up. These are done automatically for LARBS users, but I will state
|
|
# them here for others doing it manually.
|
|
#
|
|
# 1. ueberzug must be installed.
|
|
# 2. The scope file (~/.config/lf/scope for me), must have a command similar to
|
|
# mine to generate ueberzug images.
|
|
# 3. A `set cleaner` line as below is a cleaner script.
|
|
# 4. lf should be started through a wrapper script (~/.local/bin/lfub for me)
|
|
# that creates the environment for ueberzug. This command can be be aliased
|
|
# in your shellrc (`alias lf="lfub") or if set to a binding, should be
|
|
# called directly instead of normal lf.
|
|
|
|
# Basic vars
|
|
set shellopts '-eu'
|
|
set ifs "\n"
|
|
set scrolloff 10
|
|
set icons
|
|
set period 1
|
|
set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
|
|
set cleaner '~/.config/lf/cleaner'
|
|
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/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;;
|
|
text/*|application/json|inode/x-empty|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\|jpeg\|gif\|webp\|avif\|tif\|ico\)\(_large\)*$" |
|
|
setsid -f sxiv -aio 2>/dev/null | while read -r file; do
|
|
[ -z "$file" ] && continue
|
|
lf -remote "send select \"$file\""
|
|
lf -remote "send toggle"
|
|
done &
|
|
;;
|
|
audio/*|video/x-ms-asf) mpv --audio-display=no $f ;;
|
|
video/*) setsid -f mpv $f -quiet >/dev/null 2>&1 ;;
|
|
application/pdf|application/vnd.djvu|application/epub*) setsid -f zathura $fx >/dev/null 2>&1 ;;
|
|
application/pgp-encrypted) $EDITOR $fx ;;
|
|
application/vnd.openxmlformats-officedocument.wordprocessingml.document|application/vnd.oasis.opendocument.text|application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|application/vnd.oasis.opendocument.spreadsheet|application/vnd.oasis.opendocument.spreadsheet-template|application/vnd.openxmlformats-officedocument.presentationml.presentation|application/vnd.oasis.opendocument.presentation-template|application/vnd.oasis.opendocument.presentation|application/vnd.ms-powerpoint|application/vnd.oasis.opendocument.graphics|application/vnd.oasis.opendocument.graphics-template|application/vnd.oasis.opendocument.formula|application/vnd.oasis.opendocument.database) setsid -f libreoffice $fx >/dev/null 2>&1 ;;
|
|
application/octet-stream) case ${f##*.} in
|
|
doc|docx|xls|xlsx|odt|ppt|pptx) setsid -f libreoffice $fx >/dev/null 2>&1 ;;
|
|
ghw) setsid -f gtkwave $f >/dev/null 2>&1 ;;
|
|
*) setsid -f zathura $fx >/dev/null 2>&1 ;;
|
|
esac
|
|
*) 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" ] && aunpack $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="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/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="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/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 "$1"
|
|
|
|
cmd bulkrename ${{
|
|
tmpfile_old="$(mktemp)"
|
|
tmpfile_new="$(mktemp)"
|
|
|
|
[ -n "$fs" ] && fs=$(basename -a $fs) || fs=$(ls)
|
|
|
|
echo "$fs" > "$tmpfile_old"
|
|
echo "$fs" > "$tmpfile_new"
|
|
$EDITOR "$tmpfile_new"
|
|
|
|
[ "$(wc -l < "$tmpfile_old")" -eq "$(wc -l < "$tmpfile_new")" ] || { rm -f "$tmpfile_old" "$tmpfile_new"; exit 1; }
|
|
|
|
paste "$tmpfile_old" "$tmpfile_new" | while IFS="$(printf '\t')" read -r src dst
|
|
do
|
|
[ "$src" = "$dst" ] || [ -e "$dst" ] || mv -- "$src" "$dst"
|
|
done
|
|
|
|
rm -f "$tmpfile_old" "$tmpfile_new"
|
|
lf -remote "send $id unselect"
|
|
}}
|
|
|
|
# Bindings
|
|
map <c-f> $lf -remote "send $id select \"$(fzf)\""
|
|
map J $lf -remote "send $id cd $(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf)"
|
|
map gh
|
|
map g top
|
|
map D delete
|
|
map E extract
|
|
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; 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 B bulkrename
|
|
map b $setbg $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
|
|
|
|
# Source Bookmarks
|
|
source "~/.config/lf/shortcutrc"
|