Recent lf stuff

This commit is contained in:
agryphus 2024-01-08 23:04:12 -05:00
parent 8a562d9452
commit 7bb1b1b533
4 changed files with 425 additions and 111 deletions

View file

@ -1,79 +1,358 @@
# Some of these icons contain a [] character after the emoji, since in my font, some are
# one-wide while others are two-wide. There's probably a better solution to this somewhere
di 📁
fi 📃
tw 🤝
ow 📂
ln ⛓⠀
or ❌
ex 🎯
*.txt ✍⠀
*.mom ✍⠀
*.me ✍⠀
*.ms ✍⠀
*.avif 🖼⠀
*.png 🖼⠀
*.webp 🖼⠀
*.ico 🖼⠀
*.jpg 📸
*.jpe 📸
*.jpeg 📸
*.gif 🖼⠀
*.svg 🗺⠀
*.tif 🖼⠀
*.tiff 🖼⠀
*.xcf 🖌⠀
*.html 🌎
*.xml 📰
*.gpg 🔒
*.css 🎨
*.pdf 📚
*.djvu 📚
*.epub 📚
*.csv 📓
*.xlsx 📓
*.tex 📜
*.md 📘
*.r 📊
*.R 📊
*.rmd 📊
*.Rmd 📊
*.m 📊
*.mp3 🎵
*.opus 🎵
*.ogg 🎵
*.m4a 🎵
*.flac 🎼
*.wav 🎼
*.mkv 🎥
*.mp4 🎥
*.webm 🎥
*.mpeg 🎥
*.avi 🎥
*.mov 🎥
*.mpg 🎥
*.wmv 🎥
*.m4b 🎥
*.flv 🎥
*.zip 📦
*.rar 📦
*.7z 📦
*.tar 📦
*.z64 🎮
*.v64 🎮
*.n64 🎮
*.gba 🎮
*.nes 🎮
*.gdi 🎮
*.1
*.nfo
*.info
*.log 📙
*.iso 📀
*.img 📀
*.bib 🎓
*.ged 👪
*.part 💔
*.torrent 🔽
*.jar ♨⠀
*.java ♨⠀
# vim:ft=conf
# These examples require Nerd Fonts or a compatible font to be used.
# See https://www.nerdfonts.com for more information.
# default values from lf (with matching order)
# ln l # LINK
# or l # ORPHAN
# tw t # STICKY_OTHER_WRITABLE
# ow d # OTHER_WRITABLE
# st t # STICKY
# di d # DIR
# pi p # FIFO
# so s # SOCK
# bd b # BLK
# cd c # CHR
# su u # SETUID
# sg g # SETGID
# ex x # EXEC
# fi - # FILE
# file types (with matching order)
ln  # LINK
or  # ORPHAN
tw t # STICKY_OTHER_WRITABLE
st t # STICKY
ow  # OTHER_WRITABLE
di  # DIR
# ow  # OTHER_WRITABLE
# di  # DIR
# ow 󰝰 # OTHER_WRITABLE
# di 󰝰 # DIR
pi p # FIFO
so 󰡂 # SOCK
bd b # BLK
cd c # CHR
su u # SETUID
sg g # SETGID
ex  # EXEC
fi  # FILE
# file extensions (vim-devicons)
*.styl 
*.sass 
*.scss 
*.htm 
*.html 
*.slim 
*.haml 
*.ejs 
*.css 
*.less 
*.md 
*.mdx 
*.markdown 
*.rmd 
*.json 
*.webmanifest 
*.js 
*.mjs 
*.jsx 
*.rb 
*.gemspec 
*.rake 
*.php 
*.py 
*.pyc 
*.pyo 
*.pyd 
*.coffee 
*.mustache 
*.hbs 
*.conf 
*.ini 
*.yml 
*.yaml 
*.toml 
*.bat 
*.mk 
*.twig 
*.cpp 
*.c++ 
*.cxx 
*.cc 
*.cp 
*.c 
*.cs 󰌛
*.h 
*.hh 
*.hpp 
*.hxx 
*.hs 
*.lhs 
*.nix 
*.lua 
*.java 
*.sh 
*.fish 
*.bash 
*.zsh 
*.ksh 
*.csh 
*.awk 
*.ps1 
*.ml λ
*.mli λ
*.diff 
*.db 
*.sql 
*.dump 
*.clj 
*.cljc 
*.cljs 
*.edn 
*.scala 
*.go 
*.dart 
*.xul 
*.sln 
*.suo 
*.pl 
*.pm 
*.t 
*.rss 
'*.f#' 
*.fsscript 
*.fsx 
*.fs 
*.fsi 
*.rs 
*.rlib 
*.d 
*.erl 
*.hrl 
*.ex 
*.exs 
*.eex 
*.leex 
*.heex 
*.vim 
*.ai 
*.psd 
*.psb 
*.ts 
*.tsx 
*.jl 
*.pp 
*.vue 
*.elm 
*.swift 
*.xcplayground 
*.tex 󰙩
*.r 󰟔
*.rproj 󰗆
*.sol 󰡪
# file names (vim-devicons) (case-insensitive not supported in lf)
*gruntfile.coffee 
*gruntfile.js 
*gruntfile.ls 
*gulpfile.coffee 
*gulpfile.js 
*gulpfile.ls 
*mix.lock 
*dropbox 
*.ds_store 
*.gitconfig 
*.gitignore 
*.gitattributes 
*.gitlab-ci.yml 
*.bashrc 
*.zshrc 
*.zshenv 
*.zprofile 
*.vimrc 
*.gvimrc 
*_vimrc 
*_gvimrc 
*.bashprofile 
*favicon.ico 
*license 
*node_modules 
*react.jsx 
*procfile 
*dockerfile 
*docker-compose.yml 
*rakefile 
*config.ru 
*gemfile 
*makefile 
*cmakelists.txt 
*robots.txt 󰚩
# file names (case-sensitive adaptations)
*Gruntfile.coffee 
*Gruntfile.js 
*Gruntfile.ls 
*Gulpfile.coffee 
*Gulpfile.js 
*Gulpfile.ls 
*Dropbox 
*.DS_Store 
*LICENSE 
*React.jsx 
*Procfile 
*Dockerfile 
*Docker-compose.yml 
*Rakefile 
*Gemfile 
*Makefile 
*CMakeLists.txt 
# file patterns (vim-devicons) (patterns not supported in lf)
# .*jquery.*\.js$ 
# .*angular.*\.js$ 
# .*backbone.*\.js$ 
# .*require.*\.js$ 
# .*materialize.*\.js$ 
# .*materialize.*\.css$ 
# .*mootools.*\.js$ 
# .*vimrc.* 
# Vagrantfile$ 
# file patterns (file name adaptations)
*jquery.min.js 
*angular.min.js 
*backbone.min.js 
*require.min.js 
*materialize.min.js 
*materialize.min.css 
*mootools.min.js 
*vimrc 
Vagrantfile 
# archives or compressed (extensions from dircolors defaults)
*.tar 
*.tgz 
*.arc 
*.arj 
*.taz 
*.lha 
*.lz4 
*.lzh 
*.lzma 
*.tlz 
*.txz 
*.tzo 
*.t7z 
*.zip 
*.z 
*.dz 
*.gz 
*.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 
# image formats (extensions from dircolors defaults)
*.gif  # Lossless
*.bmp 
*.png 
*.tiff 
*.webp 
*.jpg  # Lossy
*.jpeg 
*.mjpg 
*.mjpeg 
*.pbm 
*.pgm 
*.ppm 
*.tga 
*.xbm 
*.xpm 
*.tif 
*.svg 
*.svgz 
*.mng 
*.pcx 
# Video formats
*.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 
# audio formats (extensions from dircolors defaults)
*.aac 
*.au 
*.flac 
*.m4a 
*.mid 
*.midi 
*.mka 
*.mp3 
*.mpc 
*.ogg 
*.ra 
*.wav 
*.oga 
*.opus 
*.spx 
*.xspf 
# other formats
*.pdf 
*.iso 
*.org 

View file

@ -1,6 +1,4 @@
#!/usr/bin/env fish
# Not meant to actually be executable in fish, but it looks like lf config
# uses fish syntax, so the shebang helps treesitter highlighting properly
#!/usr/bin/env zsh
## LF VARS
@ -14,6 +12,9 @@ set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
set cleaner '~/.config/lf/cleaner' # Clear preview
set previewer '~/.config/lf/previewer' # Make preview
set autoquit true
set cursorpreviewfmt "" # No cursor in the directory preview pane
# set cursoractivefmt "\033[1m"
set drawbox true
## MAPPINGS
@ -41,11 +42,14 @@ map c push A<c-u> # new rename
map i :rename # before extension
map I :rename; cmd-home # at the very beginning
map r drag-and-drop
# Fuzzy finding
map <c-f> $lf -remote "send $id select \"$(fzf)\""
map F broot_jump
map b set_bg
map b set_bg one
map B set_bg all
## COMMAND DEFINITIONS
@ -63,14 +67,22 @@ cmd delete ${{
}}
cmd set_bg ${{
if [ -z "$(pidof Hyprland)" ]; then
rm -f ~/.config/wallpaper
cp "$fx" ~/.config/wallpaper
if [ -z "$(pidof Hyprland)" ]; then
feh --bg-fill --no-fehbg "$HOME/.config/wallpaper"
else
swww img "$HOME/.config/wallpaper"
exit
fi
if [ "$1" = "all" ]; then
swww img "$fx"
else
output="$(slurp -o -f "%o")"
swww img "$fx" --outputs "$output"
fi
}}
cmd drag-and-drop ${{
GKD_BACKEND=11 setsid -f dragon "$fx" >/dev/null 2>&1
}}
cmd extract ${{
@ -107,6 +119,18 @@ cmd open ${{
# Set $new_window based on arguments
[ ! -z $@ ] && [ "$@" = "new_window" ] && new_window=1
function launch {
swallower="gobble"
[ -z "$WAYLAND_DISPLAY" ] && swallower="devour"
swallower="devour"
if [ ! -v new_window ]; then
$swallower "$@" >/dev/null 2>&1
else
setsid -f "$@" >/dev/null 2>&1
fi
}
case $(file --mime-type "$(readlink -f $f)" -b) in
application/json|\
application/x-subrip|\
@ -118,23 +142,25 @@ cmd open ${{
|| ($EDITOR "$fx")
;;
audio/*|video/x-ms-asf)
mpv --audio-display=no $f ;;
launch mpv --audio-display=no "$f"
;;
video/*)
setsid -f mpv $f -quiet >/dev/null 2>&1 ;;
launch mpv -quiet "$f"
;;
application/epub*|\
application/octet-stream|\
application/pdf|\
application/postscript|\
application/vnd.djvu|\
image/vnd.djvu)
setsid -f $([ ! -v new_window ] && echo devour) zathura $fx >/dev/null 2>&1
launch zathura "$fx"
;;
image/*)
find . -maxdepth 1 -type f -exec file -i {} \; |
grep -E 'image/.*' |
awk -F: '{ print substr($0, 1, length($0) - length($NF) - 1) }' |
rotdir $f |
setsid -f $([ ! -v new_window ] && echo devour) nsxiv -aio 2>/dev/null |
launch nsxiv -aio |
while read -r file; do
[ -z "$file" ] && continue
lf -remote "send select \"$file\""
@ -156,12 +182,9 @@ cmd open ${{
application/vnd.openxmlformats-officedocument.presentationml.presentation|\
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet|\
application/vnd.openxmlformats-officedocument.wordprocessingml.document)
setsid -f $([ ! -v new_window ] && echo devour) libreoffice $fx >/dev/null 2>&1
launch libreoffice "$fx"
;;
*)
# test -v new_window \
# && () \
# || ()
;;
esac
}}

View file

@ -1,7 +1,18 @@
#!/usr/bin/env sh
function sixel_compat() {
case "$TERM" in
"st-256color")
echo "y"
;;
*)
echo ""
;;
esac
}
image() {
chafa -f sixel -s "$2x$3" --animate false "$1"
chafa $([ -z "$(sixel_compat)" ] || echo "-f sixel") -s "$2x$3" --animate false "$1"
exit 1
}

View file

@ -20,6 +20,7 @@
poppler_utils # Provides pdftoppm, to turn pdfs into images
unrar-wrapper # Extract .rar files
xclip # Copy file name to clip
xdragon # Drag and drop utility
zathura # PDF viewer
];
}