set ignorecase
set icons
set info size
+set sortby name
set previewer ~/.config/lf/previewer.sh
set cleaner ~/.config/lf/clear_img.sh
# map a :push %mkdir<space>
# make sure trash folder exists
-# %mkdir -p ~/.trash
+%mkdir -p ~/.trash
# use '<delete>' key for either 'trash' or 'delete' command
-# map <delete> trash
+map <delete> trash
# map <delete> delete
cmd touchdir ${{
touch $ans
}}
+
# extract the current file with the right command
# (xkcd link: https://xkcd.com/1168/)
cmd extract ${{
}}
cmd on-select &{{
- lf -remote "send $id set statfmt \"$(eza -ld --color=always "$f")\""
+ lf -remote "send $id set statfmt \"$(eza -ld --color=always -o --no-permissions "$f")\""
}}
cmd fzf_jump ${{
cmd toggle_preview %{{
if [ "$lf_preview" = "true" ]; then
- lf -remote "send $id :set preview false; set ratios 1:5"
+ lf -remote "send $id :set preview false; set ratios 1; set info size:time"
else
- lf -remote "send $id :set preview true; set ratios 1:2:3"
+ lf -remote "send $id :set preview true; set ratios 1:2:3; set info """
fi
}}
lf -remote "send $id :unselect; toggle $(get_files) $(get_dirs)"
}}
+
+# create symlinks
+cmd link %{{
+ set -- $(cat ~/.local/share/lf/files)
+ mode="$1"
+ shift
+ if [ "$#" -lt 1 ]; then
+ lf -remote "send $id echo no files to link"
+ exit
+ fi
+ case "$mode" in
+ # symbolically copy mode is indicating a soft link
+ copy) ln -sr -t . -- "$@";;
+ # while a move mode is indicating a hard link
+ move) ln -t . -- "$@";;
+ esac
+ rm ~/.local/share/lf/files
+ lf -remote "send clear"
+}}
+
+# follow symlinks
+cmd follow-link %{{
+ lf -remote "send $id select \"$(readlink -- "$f" | sed 's/\\/\\\\/g;s/"/\\"/g')\""
+}}
+
+# a function similar to macOS finder app
+cmd selected-to-new-folder ${{
+ set -f
+ printf 'Directory name: '
+ read -r newd
+ mkdir -- "$newd"
+ mv -- $fx "$newd"
+}}
+
+# ------------------------------------ commands:
+# helpers
+cmd open-with-gui &$@ $fx # opens asynchronously, intended for GUI applications
+cmd open-with-cli $$@ $fx # opens synchronously, intended for CLI/TUI applications
+
+# options per location
+setlocal ~ sortby name
+setlocal ~/Bilder/Screenshots sortby ctime
+setlocal ~/dotfiles sortby name
+setlocal /m sortby name
+setlocal /media sortby name
+setlocal /mnt sortby name
+
# unmap keys
+map c
map d
map m
+map p
map t
map x
+# map u is unselect
# one-shot commands
map R bulk-rename
map K move-parent up
map \= select-dirs
map \+ select-files
-map \% select-all
+map A select-all
map \| shell-pipe
+map ~
# m = mark
map mm mark-save
map mr mark-remove
-# mark-load is gm
+map ml mark-load
# t = touch
map td touchdir
map tt touchfile
+# c = change
+map cw : rename
+map cm selected-to-new-folder
+map cy yank-file $printf '%s' "$f" | wl-copy -p -n
+
# d = delete
map dd cut
-map dz trash
-map dD trash
+map dt trash
map dr trash-restore
-
-# o = order
-map oc : set sortby ctime; set reverse false; set info ctime
-map oe : set sortby ext; set reverse false; set info size
-map on : set sortby name; set reverse false; set info size
-map os : set sortby size; set reverse false; set info size
-map om : set sortby time; set reverse false; set info time
-map oC : set sortby ctime; set reverse true; set info ctime
-map oE : set sortby ext; set reverse true; set info size
-map oN : set sortby name; set reverse true; set info size
-map oS : set sortby size; set reverse true; set info size
-map oM : set sortby time; set reverse true; set info time
+map dZ delete #zap
# g = goto
map gc cd ~/.config
-map gm mark-load
+map gd cd ~/dotfiles
+map gf :fzf_search
+map gL follow-link
+map gm cd /media
map gM cd /mnt
map ge bottom
+map gs cd ~/Bilder/Screenshots
map go :fzf_jump
-map gs :fzf_search
+
+# o = open
+map oo push :open-with-cli<space>
+map oO push :open-with-gui<space>
+
+# s = sort
+map sA : set sortby ctime; set reverse true; set info ctime
+map sC : set sortby ctime; set reverse true; set info ctime
+map sE : set sortby ext; set reverse true; set info size
+map sN : set sortby name; set reverse true; set info size
+map sS : set sortby size; set reverse true; set info size
+map sT : set sortby time; set reverse true; set info time
# various commands
-map zp toggle_preview
+map ~ toggle_preview
map C edit-config
+map pp :paste; clear
+map pP :link; clear