From c089a7e924bbc5ef741a0e4cad023413f316897e Mon Sep 17 00:00:00 2001 From: Derek Taylor Date: Sun, 3 Mar 2019 21:22:33 -0600 Subject: [PATCH] Updating vifmimg and vifmrc to include pdf image previews. --- .config/vifm/scripts/vifmimg | 41 ++++++++++++++++++++++++++++++++---- .config/vifm/vifmrc | 28 +++++++++++++++--------- .xmonad/xmonad.hs | 2 +- 3 files changed, 56 insertions(+), 15 deletions(-) diff --git a/.config/vifm/scripts/vifmimg b/.config/vifm/scripts/vifmimg index b36d697..e5d8763 100755 --- a/.config/vifm/scripts/vifmimg +++ b/.config/vifm/scripts/vifmimg @@ -1,20 +1,53 @@ #!/usr/bin/env bash readonly ID_PREVIEW="preview" +#AUTO_REMOVE="yes" +# By enabling this option the script will remove the preview file after it is drawn +# and by doing so the preview will always be up-to-date with the file. +# This however, requires more CPU and therefore affects the overall performance. + if [ -e "$FIFO_UEBERZUG" ]; then if [[ "$1" == "draw" ]]; then declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ [path]="${PWD}/$6") \ > "$FIFO_UEBERZUG" + elif [[ "$1" == "videopreview" ]]; then - [[ ! -f "/tmp/$6.png" ]] && ffmpegthumbnailer -i "${PWD}/$6" -o "/tmp/$6.png" -s 0 -q 10 + echo -e "Loading preview..\nFile: $6" + [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/" + [[ ! -f "/tmp${PWD}/$6.png" ]] && ffmpegthumbnailer -i "${PWD}/$6" -o "/tmp${PWD}/$6.png" -s 0 -q 10 declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" - [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ - [path]="/tmp/$6.png") \ - > "$FIFO_UEBERZUG" + [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ + [path]="/tmp${PWD}/$6.png") \ + > "$FIFO_UEBERZUG" + + elif [[ "$1" == "gifpreview" ]]; then + echo -e "Loading preview..\nFile: $6" + [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/" && convert -coalesce "${PWD}/$6" "/tmp${PWD}/$6/$6.png" + for frame in $(ls -1 /tmp${PWD}/$6/$6*.png | sort -V); do + declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" + [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ + [path]="$frame") \ + > "$FIFO_UEBERZUG" + # Sleep between frames to make the animation smooth. + sleep .07 + done + + elif [[ "$1" == "pdfpreview" ]]; then + echo -e "Loading preview..\nFile: $6" + [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/" + [[ ! -f "/tmp${PWD}/$6.png" ]] && pdftoppm -png -singlefile "$6" "/tmp${PWD}/$6" + declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" + [x]="$2" [y]="$3" [width]="$4" [height]="$5" \ + [path]="/tmp${PWD}/$6.png") \ + > "$FIFO_UEBERZUG" + elif [[ "$1" == "clear" ]]; then declare -p -A cmd=([action]=remove [identifier]="$ID_PREVIEW") \ > "$FIFO_UEBERZUG" + [[ ! -z $AUTO_REMOVE ]] && [[ -f "/tmp${PWD}/$6.png" ]] && rm -f "/tmp${PWD}/$6.png" + [[ ! -z $AUTO_REMOVE ]] && [[ -d "/tmp${PWD}/$6/" ]] && rm -rf "/tmp${PWD}/$6/" + fi fi diff --git a/.config/vifm/vifmrc b/.config/vifm/vifmrc index 275389c..b4ee1fb 100644 --- a/.config/vifm/vifmrc +++ b/.config/vifm/vifmrc @@ -179,7 +179,11 @@ command! reload :write | restart " Pdf filextype *.pdf zathura %c %i &, apvlv %c, xpdf %c -fileviewer *.pdf pdftotext -nopgbrk %c - +fileviewer *.pdf + \ vifmimg pdfpreview %px %py %pw %ph %c + \ %pc + \ vifmimg clear + " \ pdftotext -nopgbrk %c - " PostScript filextype *.ps,*.eps,*.ps.gz @@ -249,15 +253,19 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm \ feh %d &, \ {View in cacaview} \ cacaview %c &, -fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm - \ vifmimg draw %px %py %pw %ph %c - \ %pc - \ vifmimg clear - " Get w3m image previews inside vifm - " \ imgt %px %py %pw %ph %c - " \ %pc - " \ imgc %px %py %pw %ph NOT NEEDED IN XTERM - +fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.xpm + \ vifmimg draw %px %py %pw %ph %c + \ %pc + \ vifmimg clear + " Get w3m image previews inside vifm + " \ imgt %px %py %pw %ph %c + " \ %pc + " \ imgc %px %py %pw %ph NOT NEEDED IN XTERM +fileviewer *.gif + \ vifmimg gifpreview %px %py %pw %ph %c + \ %pc + \ vifmimg clear + " OpenRaster filextype *.ora \ {Edit in MyPaint} diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs index 388932f..f883f99 100755 --- a/.xmonad/xmonad.hs +++ b/.xmonad/xmonad.hs @@ -4,7 +4,7 @@ -- | |_| || | http://www.gitlab.com/dwt1/ -- |____/ |_| -- --- A customized configuration for xmonad window manager (http://www.xmonad.org) +-- My configuration for the xmonad window manager (http://www.xmonad.org) ------------------------------------------------------------------------ ---IMPORTS