mirror of
				https://github.com/tiyn/dotfiles.git
				synced 2025-10-31 12:31:15 +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 BROWSER="firefox" | ||||
| export READER="zathura" | ||||
| export FILE="vifm" | ||||
| export FILE="vifmrun" | ||||
| export SUDO_ASKPASS="$HOME/.local/bin/tools/dmenupass" | ||||
| export NOTMUCH_CONFIG="$HOME/.config/notmuch-config" | ||||
| export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0" | ||||
| @@ -18,7 +18,7 @@ export VIDEO="mpv" | ||||
| export AUDIO="mpv" | ||||
| export TABLE="sc-im" | ||||
| export IMAGE="sxiv" | ||||
| export LATEX="vim" | ||||
| export LATEX="nvim" | ||||
| export MAIL="thunderbird" | ||||
| export MUSIC="ncmpcpp" | ||||
|  | ||||
|   | ||||
| @@ -172,7 +172,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 | ||||
| @@ -238,7 +242,13 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm | ||||
|         \ {View in shotwell} | ||||
|         \ shotwell, | ||||
| 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 | ||||
| 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