]> Sergey Matveev's repositories - nnn.git/commitdiff
preview-tui fixes (#900)
authorluukvbaal <31730729+luukvbaal@users.noreply.github.com>
Sun, 21 Mar 2021 01:41:14 +0000 (02:41 +0100)
committerGitHub <noreply@github.com>
Sun, 21 Mar 2021 01:41:14 +0000 (07:11 +0530)
* redraw preview on resize

* fix stray preview pane after exit

* restore cleanup

* fix image bin info fallback

plugins/preview-tui
plugins/preview-tui-ext

index 4a04524c0e0f97c9f6518e2cc09c4bf6f2d68fe3..f90cf6f877ee02aaadb809c29cd2692913070786 100755 (executable)
@@ -69,6 +69,7 @@ TMPDIR="${TMPDIR:-/tmp}"
 NUMPREVIEWTUI="$(($(find "$TMPDIR" -maxdepth 1 -name 'nnn-preview-tui-pagerpid*' 2>/dev/null | wc -l) + 1))"
 PAGERPID="$TMPDIR/nnn-preview-tui-pagerpid.$NUMPREVIEWTUI"
 GIFPID="$TMPDIR/nnn-preview-tui-gifpid.$NUMPREVIEWTUI"
+CURSEL="$TMPDIR/nnn-preview-tui-selection.$NUMPREVIEWTUI"
 FIFO_UEBERZUG="$TMPDIR/nnn-preview-tui-ueberzug-fifo.$NUMPREVIEWTUI"
 
 [ "$PAGER" = "most" ] && PAGER="less -R"
@@ -191,7 +192,7 @@ image_preview() {
         viu -t "$3" &
         echo "$!" > "$GIFPID"
     else
-        fifo_pager print_bin_info "$1"
+        fifo_pager print_bin_info "$3"
     fi
 }
 
@@ -205,16 +206,18 @@ ueberzug_remove() {
 
 ueberzug_refresh() {
     clear
+    kill "$(cat "$GIFPID" 2>/dev/null)" >/dev/null 2>&1
     pkill -P "$$" >/dev/null 2>&1
     pkill -f -n preview-tui-ext >/dev/null 2>&1
-    echo > "$NNN_FIFO"
     tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser json &
+    preview_file "$(cat "$CURSEL")"
+    echo > "$NNN_FIFO"
     preview_fifo &
     wait
 }
 if [ "$TERMINAL" != "kitty" ] && [ "$PREVIEW_MODE" ] && exists ueberzug; then
     trap 'ueberzug_refresh' WINCH
-    trap 'rm "$FIFO_UEBERZUG" "$PAGERPID" "$GIFPID"' INT HUP EXIT
+    trap 'rm "$FIFO_UEBERZUG" "$PAGERPID" "$GIFPID" "$CURSEL"' INT HUP EXIT
 fi
 
 preview_fifo() {
@@ -226,9 +229,11 @@ preview_fifo() {
         kill "$(cat "$PAGERPID" 2>/dev/null)" >/dev/null 2>&1
         [ "$TERMINAL" != "kitty" ] && exists ueberzug && ueberzug_remove
         preview_file "$selection"
+        echo "$selection" > "$CURSEL"
     done
     [ "$TERMINAL" != "kitty" ] && exists ueberzug && rm "$FIFO_UEBERZUG"
-    rm "$PAGERPID" "$GIFPID" >/dev/null 2>&1
+    rm "$PAGERPID" "$GIFPID" "$CURSEL" >/dev/null 2>&1
+    pkill -P "$$" >/dev/null 2>&1
 }
 
 if [ "$PREVIEW_MODE" ]; then
index 22d6063364314d0cec2bf12d1297b58395b72783..723fe7afd03c1353564e5bd9230f5aa5bbf608ba 100755 (executable)
@@ -79,6 +79,7 @@ TMPDIR="${TMPDIR:-/tmp}"
 NUMPREVIEWTUI="$(($(find "$TMPDIR" -maxdepth 1 -name 'nnn-preview-tui-pagerpid*' 2>/dev/null | wc -l) + 1))"
 PAGERPID="$TMPDIR/nnn-preview-tui-pagerpid.$NUMPREVIEWTUI"
 GIFPID="$TMPDIR/nnn-preview-tui-gifpid.$NUMPREVIEWTUI"
+CURSEL="$TMPDIR/nnn-preview-tui-selection.$NUMPREVIEWTUI"
 FIFO_UEBERZUG="$TMPDIR/nnn-preview-tui-ueberzug-fifo.$NUMPREVIEWTUI"
 
 [ "$PAGER" = "most" ] && PAGER="less -R"
@@ -272,7 +273,7 @@ image_preview() {
         viu -t "$3" &
         echo "$!" > "$GIFPID"
     else
-        fifo_pager print_bin_info "$1"
+        fifo_pager print_bin_info "$3"
     fi
 }
 
@@ -286,16 +287,18 @@ ueberzug_remove() {
 
 ueberzug_refresh() {
     clear
+    kill "$(cat "$GIFPID" 2>/dev/null)" >/dev/null 2>&1
     pkill -P "$$" >/dev/null 2>&1
     pkill -f -n preview-tui-ext >/dev/null 2>&1
-    echo > "$NNN_FIFO"
     tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser json &
+    preview_file "$(cat "$CURSEL")"
+    echo > "$NNN_FIFO"
     preview_fifo &
     wait
 }
 if [ "$TERMINAL" != "kitty" ] && [ "$PREVIEW_MODE" ] && exists ueberzug; then
     trap 'ueberzug_refresh' WINCH
-    trap 'rm "$FIFO_UEBERZUG" "$PAGERPID" "$GIFPID"' INT HUP EXIT
+    trap 'rm "$FIFO_UEBERZUG" "$PAGERPID" "$GIFPID" "$CURSEL"' INT HUP EXIT
 fi
 
 preview_fifo() {
@@ -307,9 +310,11 @@ preview_fifo() {
         kill "$(cat "$PAGERPID" 2>/dev/null)" >/dev/null 2>&1
         [ "$TERMINAL" != "kitty" ] && exists ueberzug && ueberzug_remove
         preview_file "$selection"
+        echo "$selection" > "$CURSEL"
     done
     [ "$TERMINAL" != "kitty" ] && exists ueberzug && rm "$FIFO_UEBERZUG"
-    rm "$PAGERPID" "$GIFPID" >/dev/null 2>&1
+    rm "$PAGERPID" "$GIFPID" "$CURSEL" >/dev/null 2>&1
+    pkill -P "$$" >/dev/null 2>&1
 }