From 169a7fcc571a8606e193935d1cdf294ad5985e69 Mon Sep 17 00:00:00 2001 From: tiyn Date: Sun, 12 Apr 2026 08:21:27 +0200 Subject: [PATCH] Vifm: Updated image handling - SVGs are now previewed with white backgrounds - Displaying are now handled by imv instead of inkscape and therefore have white backgrounds --- .config/imv/config | 4 ++ .config/vifm/vifmrc | 13 +++--- .local/bin/etc/vifm/vifmimg | 82 +++++++++++++++++++------------------ 3 files changed, 53 insertions(+), 46 deletions(-) diff --git a/.config/imv/config b/.config/imv/config index 19c1713..a9dc675 100644 --- a/.config/imv/config +++ b/.config/imv/config @@ -1,3 +1,7 @@ +[options] + +background = #FFFFFF + [binds] = zoom 1 diff --git a/.config/vifm/vifmrc b/.config/vifm/vifmrc index 14724d0..fd159ac 100644 --- a/.config/vifm/vifmrc +++ b/.config/vifm/vifmrc @@ -217,11 +217,6 @@ fileviewer *.epub,*.kepub \ %pc \ vifmimg clear -" svg -filextype *.svg - \ {View in inkview} - \ inkview %f, - " Audio filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus,*.aac \ {Play using mpv} @@ -266,7 +261,7 @@ filetype *.[1-8] man ./%c fileviewer *.[1-8] man ./%c | col -b " Images -filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp +filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp,*.svg,*.svgz \ {View in imv} \ imv %c %d &, fileviewer @@ -481,6 +476,12 @@ vnoremap rr :!lp %f nnoremap cn :!cleanname %f vnoremap cn :!cleanname %f +" Quicker pane navigation +nnoremap h +nnoremap l +nnoremap j +nnoremap k + " ------------------------------------------------------------------------------ " Various customization examples diff --git a/.local/bin/etc/vifm/vifmimg b/.local/bin/etc/vifm/vifmimg index 5888bdd..c52a4b0 100755 --- a/.local/bin/etc/vifm/vifmimg +++ b/.local/bin/etc/vifm/vifmimg @@ -4,53 +4,55 @@ PCACHE="$HOME/.cache/vifm/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- export PCACHE="${PCACHE%% *}" pclear() { - printf '{"action": "remove", "identifier": "vifm-preview"}\n' > "$FIFO_UEBERZUG" + printf '{"action": "remove", "identifier": "vifm-preview"}\n' >"$FIFO_UEBERZUG" } image() { - printf '{"action": "add", "identifier": "vifm-preview", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$2" "$3" "$4" "$5" "$6" > "$FIFO_UEBERZUG" + printf '{"action": "add", "identifier": "vifm-preview", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$2" "$3" "$4" "$5" "$6" >"$FIFO_UEBERZUG" } main() { case "$1" in - "clear") - pclear "$@" - ;; - "draw") - FILE="$PWD/$6" - image "$1" "$2" "$3" "$4" "$5" "$FILE" - ;; - "video") - [ ! -f "$PCACHE" ] && \ - ffmpegthumbnailer -i "$6" -o "${PCACHE}.jpg" -s 0 -q 5 - image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" - ;; - "epub") - [ ! -f "$PCACHE" ] && \ - epub-thumbnailer "$6" "$PCACHE" 1024 - image "$1" "$2" "$3" "$4" "$5" "$PCACHE" - ;; - "pdf") - [ ! -f "${PCACHE}.jpg" ] && \ - pdftoppm -jpeg -f 1 -singlefile "$6" "$PCACHE" - image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" - ;; - "djvu") - [ ! -f "${PCACHE}.jpg" ] && \ - ddjvu -format=tiff -quality=90 -page=1 "$6" "$PCACHE.jpg" - image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" - ;; - "audio") - [ ! -f "${PCACHE}.jpg" ] && \ - ffmpeg -hide_banner -i "$6" "${PCACHE}.jpg" -y >/dev/null - image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" - ;; - "font") - [ ! -f "${PCACHE}.jpg" ] && \ - fontpreview -i "$6" -o "${PCACHE}.jpg" - image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" - ;; - *) + "clear") + pclear "$@" + ;; + "draw") + FILE="$PWD/$6" + TMP="${PCACHE}.jpg" + convert "$FILE" -background white -alpha remove -alpha off "$TMP" 2>/dev/null || cp "$FILE" "$TMP" + image "$1" "$2" "$3" "$4" "$5" "$TMP" + ;; + "video") + [ ! -f "$PCACHE" ] && + ffmpegthumbnailer -i "$6" -o "${PCACHE}.jpg" -s 0 -q 5 + image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" + ;; + "epub") + [ ! -f "$PCACHE" ] && + epub-thumbnailer "$6" "$PCACHE" 1024 + image "$1" "$2" "$3" "$4" "$5" "$PCACHE" + ;; + "pdf") + [ ! -f "${PCACHE}.jpg" ] && + pdftoppm -jpeg -f 1 -singlefile "$6" "$PCACHE" + image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" + ;; + "djvu") + [ ! -f "${PCACHE}.jpg" ] && + ddjvu -format=tiff -quality=90 -page=1 "$6" "$PCACHE.jpg" + image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" + ;; + "audio") + [ ! -f "${PCACHE}.jpg" ] && + ffmpeg -hide_banner -i "$6" "${PCACHE}.jpg" -y >/dev/null + image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" + ;; + "font") + [ ! -f "${PCACHE}.jpg" ] && + fontpreview -i "$6" -o "${PCACHE}.jpg" + image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" + ;; + *) ;; esac } main "$@"