mirror of
				https://github.com/tiyn/dotfiles.git
				synced 2025-10-31 20:41:16 +01:00 
			
		
		
		
	adding pdf and image preview to vifm
This commit is contained in:
		| @@ -7,7 +7,7 @@ export EDITOR="nvim" | |||||||
| export TERMINAL="st" | export TERMINAL="st" | ||||||
| export BROWSER="firefox" | export BROWSER="firefox" | ||||||
| export READER="zathura" | export READER="zathura" | ||||||
| export FILE="vifm" | export FILE="vifmrun" | ||||||
| export SUDO_ASKPASS="$HOME/.local/bin/tools/dmenupass" | export SUDO_ASKPASS="$HOME/.local/bin/tools/dmenupass" | ||||||
| export NOTMUCH_CONFIG="$HOME/.config/notmuch-config" | export NOTMUCH_CONFIG="$HOME/.config/notmuch-config" | ||||||
| export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0" | export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0" | ||||||
| @@ -18,7 +18,7 @@ export VIDEO="mpv" | |||||||
| export AUDIO="mpv" | export AUDIO="mpv" | ||||||
| export TABLE="sc-im" | export TABLE="sc-im" | ||||||
| export IMAGE="sxiv" | export IMAGE="sxiv" | ||||||
| export LATEX="vim" | export LATEX="nvim" | ||||||
| export MAIL="thunderbird" | export MAIL="thunderbird" | ||||||
| export MUSIC="ncmpcpp" | export MUSIC="ncmpcpp" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -172,7 +172,11 @@ command! reload :write | restart | |||||||
|  |  | ||||||
| " Pdf | " Pdf | ||||||
| filextype *.pdf zathura %c %i &, apvlv %c, xpdf %c | 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 | " PostScript | ||||||
| filextype *.ps,*.eps,*.ps.gz | filextype *.ps,*.eps,*.ps.gz | ||||||
| @@ -238,7 +242,13 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm | |||||||
|         \ {View in shotwell} |         \ {View in shotwell} | ||||||
|         \ shotwell, |         \ shotwell, | ||||||
| fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm | fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm | ||||||
|          \ identify %f |          \ vifmimg draw %px %py %pw %ph %c | ||||||
|  | 		 \ %pc | ||||||
|  | 		 \ vifmimg clear | ||||||
|  | fileviewer *.gif | ||||||
|  | 		\ vifmimg gifpreview %px %py %pw %ph %c | ||||||
|  | 		\ %pc | ||||||
|  | 		\vifmimg clear | ||||||
|  |  | ||||||
| " OpenRaster | " OpenRaster | ||||||
| filextype *.ora | filextype *.ora | ||||||
|   | |||||||
							
								
								
									
										53
									
								
								.local/bin/vifm/vifmimg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								.local/bin/vifm/vifmimg
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +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 | ||||||
|  |         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${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 | ||||||
							
								
								
									
										15
									
								
								.local/bin/vifm/vifmrun
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.local/bin/vifm/vifmrun
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | #!/usr/bin/env bash | ||||||
|  | export FIFO_UEBERZUG="/tmp/vifm-ueberzug-${PPID}" | ||||||
|  |  | ||||||
|  | function cleanup { | ||||||
|  |     rm "$FIFO_UEBERZUG" 2>/dev/null | ||||||
|  |     pkill -P $$ 2>/dev/null | ||||||
|  | } | ||||||
|  |  | ||||||
|  | rm "$FIFO_UEBERZUG" 2>/dev/null | ||||||
|  | mkfifo "$FIFO_UEBERZUG" | ||||||
|  | trap cleanup EXIT | ||||||
|  | tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser bash & | ||||||
|  |  | ||||||
|  | vifm | ||||||
|  | cleanup | ||||||
		Reference in New Issue
	
	Block a user