From 238f2c6edaab6ac1a77d74b7ae40bb0489d2cef3 Mon Sep 17 00:00:00 2001 From: agryphus Date: Wed, 30 Aug 2023 02:30:54 -0400 Subject: [PATCH] Nsxiv and rotdir improvements for lf --- .config/lf/lfrc | 9 ++++++--- .config/zsh/.zshrc | 1 + .local/bin/rotdir | 13 +++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100755 .local/bin/rotdir diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 2c61979..c3803cd 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -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" diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index 5ac9344..e2c469d 100755 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -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 diff --git a/.local/bin/rotdir b/.local/bin/rotdir new file mode 100755 index 0000000..d8909d9 --- /dev/null +++ b/.local/bin/rotdir @@ -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; }' +