lfrc updated with Keymaps

This commit is contained in:
Thomas Naderer
2024-12-25 09:59:52 +01:00
parent 46ae676593
commit c31371c3b9

296
lf/lfrc
View File

@@ -30,10 +30,10 @@ set hidden
set ignorecase
set number
set relativenumber
set cursorpreviewfmt " "
# set cursorpreviewfmt " "
set info size
set dircounts
set shell sh
set shell zsh
set shellopts '-eu'
set ifs "\n"
set scrolloff 10
@@ -41,17 +41,16 @@ set wrapscroll
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 cleaner '~/.config/lf/cleaner'
set previewer '~/.config/lf/preview'
set promptfmt "\033[37;1m%d\033[0m\033[37;1m%f\033[0m"
## custom functions ----------------------------------------------------------#
cmd on-cd &{{
# '&' commands run silently in background (which is what we want here),
# but are not connected to stdout.
# To make sure our escape sequence still reaches stdout we pipe it to /dev/tty
# '&' commands run silently in background (which is what we want here),
# but are not connected to stdout.
# To make sure our escape sequence still reaches stdout we pipe it to /dev/tty
printf "\033]0; $(pwd | sed "s|$HOME|~|") - lf\007" > /dev/tty
}}
# also run at startup
@@ -60,19 +59,20 @@ on-cd
cmd open ${{
case $(file --mime-type "$f" -bL) in
text/*|application/json) $EDITOR "$fx";;
video/*|application/pdf) xdg-open "$f" & disown;;
audio/*) mpv --audio-display=no $f ;;
audio/*) ffplay -nodisp -autoexit $f ;;
image/*) feh -F $f & disown;;
*) for f in "$fx"; do xdg-open "$f"> /dev/null 2> /dev/null & done;;
application/pdf) open -a Skim "$f" & disown;;
video/*) open -a IINA "$f" & disown;;
audio/*) mpv --audio-display=no "$f" ;;
audio/*) ffplay -nodisp -autoexit "$f" ;;
image/*) open -a Preview "$f" & disown;;
application/x-tex|application/x-python|application/x-shellscript|application/javascript|application/x-markdown) $EDITOR "$fx";;
*) for f in "$fx"; do open "$f" > /dev/null 2> /dev/null & done;;
esac
}}
}}
# make new directory
cmd mkdir %{{
if [ "$1" ]; then
mkdir -p -- "$@" && lf -remote "send $id select \"$1\""
fi
if [ "$1" ]; then
mkdir -p -- "$@" && lf -remote "send $id select \"$1\""
fi
}}
#cmd mkdir ${{
@@ -84,56 +84,56 @@ cmd mkdir %{{
# make new file
cmd mkfile ${{
set -f
printf "\nFile Name: "
read ans
$EDITOR $ans
set -f
printf "\nFile Name: "
read ans
$EDITOR $ans
}}
# make new 'root' file
cmd doasmkfile ${{
set -f
printf "\nFile Name: "
read ans
doas $EDITOR $ans
set -f
printf "\nFile Name: "
read ans
doas $EDITOR $ans
}}
# make new script
cmd mkscript ${{
set -f
printf "\nFile Name: "
read ans
touch ~/Scripts/"$ans"
chmod +x ~/Scripts/"$ans"
$EDITOR ~/Scripts/"$ans"
set -f
printf "\nFile Name: "
read ans
touch ~/Scripts/"$ans"
chmod +x ~/Scripts/"$ans"
$EDITOR ~/Scripts/"$ans"
}}
# change file permissions
cmd chmod ${{
set -f
printf "\nMode Bits: "
read ans
for file in "$fx"
do
chmod $ans $file
done
lf -remote 'send reload'
set -f
printf "\nMode Bits: "
read ans
for file in "$fx"
do
chmod $ans $file
done
lf -remote 'send reload'
}}
# make file executable
cmd chmodx ${{
for file in "$fx"
do
chmod +x $file
done
lf -remote 'send reload'
for file in "$fx"
do
chmod +x $file
done
lf -remote 'send reload'
}}
# jump with fzf
cmd fzf_jump ${{
res="$(find . -maxdepth 3 | fzf --reverse --header='Jump to location')"
if [ -f "$res" ]; then
cmd="select"
res="$(find . -maxdepth 3 | fzf --reverse --header='Jump to location')"
if [ -f "$res" ]; then
cmd="select"
elif [ -d "$res" ]; then
cmd="cd"
fi
@@ -153,13 +153,13 @@ cmd delete ${{
cmd trash ${{
files=$(printf "$fx" | tr '\n' ';')
while [ "$files" ]; do
# extract the substring from start of string up to delimiter.
# this is the first "element" of the string.
# extract the substring from start of string up to delimiter.
# this is the first "element" of the string.
file=${files%%;*}
trash-put "$(basename "$file")"
# if there's only one element left, set `files` to an empty string.
# this causes us to exit this `while` loop.
# else, we delete the first "element" of the string from files, and move onto the next.
# if there's only one element left, set `files` to an empty string.
# this causes us to exit this `while` loop.
# else, we delete the first "element" of the string from files, and move onto the next.
if [ "$files" = "$file" ]; then
files=''
else
@@ -223,9 +223,9 @@ cmd link %{{
exit 0
fi
case "$mode" in
# symbolically copy mode is indicating a soft link
# symbolically copy mode is indicating a soft link
copy) ln -sr -t . -- "$@";;
# while a move mode is indicating a hard link
# while a move mode is indicating a hard link
move) ln -t . -- "$@";;
esac
rm ~/.local/share/lf/files
@@ -252,140 +252,118 @@ cmd bulkrename $vidir
map "'"
map '"'
map ,
map c
map d
map e
map m
map q
map r
map c
map d
map e $ open "$PWD"
map m
map r
# escape
map <esc> :unselect;clear;
# close
map ,q quit
map <esc> :unselect;clear;
# map : to ;
map ; read
map ; read
map gg top
map G bottom
map gg top
map G bottom
# trash mappings
map dd trash
map ct clear_trash
map rt restore_trash
map dd trash
map ct clear_trash
map rt restore_trash
map DD delete
map cc cut
map yy copy
map p paste
map DD delete
map cc cut
map yy copy
map p paste
map md push :mkdir<space>
map md push :mkdir<space>
#map md mkdir
map mf mkfile
map ms mkscript
map mF doasmkfile
map ch chmod
map x chmodx
map U unselect
map E extract
map cs wallcolor
map bg setwallpaper
map mf mkfile
map ms mkscript
map mF doasmkfile
map ch chmod
map x chmodx
map U unselect
map E extract
map cs wallcolor
map bg setwallpaper
map <enter> shell
map V push :!nvim<space>
map YY $printf "%s" "$fx" | xclip -selection clipboard
map <enter> shell
map V push :!nvim<space>
map YY $printf "%s" "$fx" | xclip -selection clipboard
map R reload
map C clear
map R reload
map C clear
# rename
map cw rename
map B bulkrename
map A rename # at the very end
map cw rename
map B bulkrename
map A rename # at the very end
#map c 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 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
# symlinks
# yy (select for copy) and P to paste soft-link
# cc (select for cut) and P to paste hard-link
map P :link
map P :link
## file openers
map cv push :!nvim<space>$HOME/.config/lf/lfrc<enter>
map cz push :!nvim<spade>$HOME/.config/zsh/.zshrc<enter>
map of open $f
map ol $$PAGER "$f"
map oq $$BROWSER "$f"
map ot openterm
map ov $$EDITOR "$f"
map odv $doas $EDITOR "$f"
map oz $$READER "$f"
map cv push :!nvim<space>$HOME/.config/lf/lfrc<enter>
map cz push :!nvim<spade>$~/.config/zsh/.zshrc<enter>
map of open $f
map ol $$PAGER "$f"
map oq $$BROWSER "$f"
map ot openterm
map ov $$EDITOR "$f"
map odv $doas $EDITOR "$f"
map oz $$READER "$f"
# execute current file (must be executable)
#map x $$f
map X !$f
map X !$f
## fzf
map f $lf -remote "send $id select '$(fzf)'"
map F $vi $(fzf)
map J fzf_jump
map f $lf -remote "send $id select '$(fzf)'"
map F $vi $(fzf)
map J fzf_jump
## fast navigation
map gh cd ~
#map gD cd ~/Documents
map gD cd ~/Downloads
map gM cd ~/Media
map gN cd ~/Notes
map gi cd ~/Notes/ict
map gt cd ~/Notes/trades
map gp cd ~/Notes/trades/tp
#map gP cd ~/Pictures
map gw cd ~/Pictures/wallpapers
map gP cd ~/Programs
map gS cd ~/Scripts
map gT cd ~/Torrents
map gc cd ~/.config
map gl cd ~/.local
map gs cd ~/.local/share
map g0 cd ~/.local/share/Trash/files
map g/ cd /
map ge cd /etc
map gm cd /mnt
map gu cd /usr
map gh cd ~
#map gD cd ~/Documents
map gD cd ~/Downloads
#map gP cd ~/Pictures
map gt cd ~/Torrents
map gta cd ~/Torrents/Audiobook
map gtb cd ~/Torrents/Books
map gc cd ~/.config
map ge cd /etc
map gi tng
map ga tnh
map go cd ~/Library/Mobile\ Documents/iCloud~md~obsidian/Documents/Privat
## fast movement
map Mh $mv "$f" ~
map MD $mv "$f" ~/Documents
#map MD $mv "$f" ~/Downloads
map MM $mv "$f" ~/Media
map MN $mv "$f" ~/Notes
map Mi $mv "$f" ~/Notes/ict
map Mt $mv "$f" ~/Notes/trades/tp
map MP $mv "$f" ~/Pictures
map Mw $mv "$f" ~/Pictures/wallpapers
#map MP $mv "$f" ~/Programs
map MS $mv "$f" ~/Scripts
map MT $mv "$f" ~/Torrents
map Mc $mv "$f" ~/.config
map Ml $mv "$f" ~/.local
map Mh $mv "$f" ~
map MD $mv "$f" ~/Documents
#map MD $mv "$f" ~/Downloads
map Mt $mv "$f" ~/Torrents
map Mta $mv "$f" ~/Torrents/Audiobooks
map Mtb $mv "$f" ~/Torrents/Books
map Mc $mv "$f" ~/.config
map Ml $mv "$f" ~/.local
## fast copy
map Yh $cp "$f" ~
map YD $cp "$f" ~/Documents
#map YD $cp "$f" ~/Downloads
map YM $cp "$f" ~/Media
map YN $cp "$f" ~/Notes
map Yi $cp "$f" ~/Notes/ict
map Yt $cp "$f" ~/Notes/trades/tp
map YP $cp "$f" ~/Pictures
map Yw $cp "$f" ~/Pictures/wallpapers
#map YP $cp "$f" ~/Programs
map YS $cp "$f" ~/Scripts
map YT $cp "$f" ~/Torrents
map Yc $cp "$f" ~/.config
map Yl $cp "$f" ~/.local
map Yh $cp "$f" ~
map YD $cp "$f" ~/Documents
#map YD $cp "$f" ~/Downloads
map YT $cp "$f" ~/Torrents
map Yta $mv "$f" ~/Torrents/Audiobooks
map Ytb $mv "$f" ~/Torrents/Books
map Yc $cp "$f" ~/.config
map Yl $cp "$f" ~/.local