Nsxiv and rotdir improvements for lf

This commit is contained in:
agryphus 2023-08-30 02:30:54 -04:00
parent 35a48bd258
commit 238f2c6eda
3 changed files with 20 additions and 3 deletions

View file

@ -17,7 +17,7 @@ cmd open ${{
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 ;;
setsid -f devour zathura $fx >/dev/null 2>&1 ;;
text/*|application/json|inode/x-empty|application/x-subrip)
$EDITOR $fx;;
image/x-xcf)
@ -25,8 +25,11 @@ cmd open ${{
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
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 devour nsxiv -aio 2>/dev/null | while read -r file; do
[ -z "$file" ] && continue
lf -remote "send select \"$file\""
lf -remote "send toggle"

View file

@ -12,6 +12,7 @@ alias python='python3'
alias xournal='xournalpp'
alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
alias javafx='java --module-path /usr/lib/jvm/default/lib/ --add-modules javafx.base,javafx.controls,javafx.graphics,javafx.media,javafx.swing,javafx.web'
alias sxiv='nsxiv'
# Some wsl stuff
alias clip=/mnt/c/Windows/System32/clip.exe

13
.local/bin/rotdir Executable file
View file

@ -0,0 +1,13 @@
#!/bin/sh
# When I open an image from the file manager in nsxiv (the image viewer), I want
# to be able to press the next/previous keys to key through the rest of the
# images in the same directory. This script "rotates" the content of a
# directory based on the first chosen file, so that if I open the 15th image,
# if I press next, it will go to the 16th etc. Autistic, I know, but this is
# one of the reasons that nsxiv is great for being able to read standard input.
[ -z "$1" ] && echo "usage: rotdir regex 2>&1" && exit 1
base="$(basename "$1")"
ls "$PWD" | awk -v BASE="$base" 'BEGIN { lines = ""; m = 0; } { if ($0 == BASE) { m = 1; } } { if (!m) { if (lines) { lines = lines"\n"; } lines = lines""$0; } else { print $0; } } END { print lines; }'