mirror of
https://github.com/jarun/nnn.git
synced 2024-11-28 05:41:31 +00:00
preview-tui: error to foreground (#970)
* preview-tui: error to foreground * preview-tui: test KITTY_LISTEN_ON
This commit is contained in:
parent
b97e2d02ea
commit
d998943119
|
@ -8,7 +8,7 @@
|
||||||
# Dependencies:
|
# Dependencies:
|
||||||
# - Supports 4 independent methods to preview with:
|
# - Supports 4 independent methods to preview with:
|
||||||
# - tmux (>=3.0), or
|
# - tmux (>=3.0), or
|
||||||
# - kitty with allow_remote_control on, or
|
# - kitty with allow_remote_control and listen_on set in kitty.conf, or
|
||||||
# - QuickLook on WSL (https://github.com/QL-Win/QuickLook)
|
# - QuickLook on WSL (https://github.com/QL-Win/QuickLook)
|
||||||
# - $TERMINAL set to a terminal (it's xterm by default).
|
# - $TERMINAL set to a terminal (it's xterm by default).
|
||||||
# - less or $PAGER
|
# - less or $PAGER
|
||||||
|
@ -79,7 +79,7 @@ startpreview() {
|
||||||
|
|
||||||
if [ -e "${TMUX%%,*}" ] && tmux -V | grep -q '[ -][3456789]\.'; then
|
if [ -e "${TMUX%%,*}" ] && tmux -V | grep -q '[ -][3456789]\.'; then
|
||||||
TERMINAL=tmux
|
TERMINAL=tmux
|
||||||
elif [ -n "$KITTY_WINDOW_ID" ] && kitty @ ls >/dev/null 2>&1; then
|
elif [ -n "$KITTY_LISTEN_ON" ]; then
|
||||||
TERMINAL=kitty
|
TERMINAL=kitty
|
||||||
else
|
else
|
||||||
TERMINAL="${TERMINAL:-xterm}"
|
TERMINAL="${TERMINAL:-xterm}"
|
||||||
|
@ -240,10 +240,10 @@ image_preview() {
|
||||||
ueberzug_layer "$1" "$2" "$3"
|
ueberzug_layer "$1" "$2" "$3"
|
||||||
elif exists catimg; then
|
elif exists catimg; then
|
||||||
catimg "$3" &
|
catimg "$3" &
|
||||||
echo "$!" > "$GIFPID"
|
printf "%s" "$!" > "$GIFPID"
|
||||||
elif exists viu; then
|
elif exists viu; then
|
||||||
viu -t "$3" &
|
viu -t "$3" &
|
||||||
echo "$!" > "$GIFPID"
|
printf "%s" "$!" > "$GIFPID"
|
||||||
else
|
else
|
||||||
fifo_pager print_bin_info "$3"
|
fifo_pager print_bin_info "$3"
|
||||||
fi
|
fi
|
||||||
|
@ -264,7 +264,7 @@ ueberzug_refresh() {
|
||||||
pkill -f -n preview-tui-ext >/dev/null 2>&1
|
pkill -f -n preview-tui-ext >/dev/null 2>&1
|
||||||
tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser json &
|
tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser json &
|
||||||
preview_file "$(cat "$CURSEL")"
|
preview_file "$(cat "$CURSEL")"
|
||||||
echo > "$NNN_FIFO"
|
printf "\n" > "$NNN_FIFO"
|
||||||
preview_fifo 2>/dev/null &
|
preview_fifo 2>/dev/null &
|
||||||
wait
|
wait
|
||||||
}
|
}
|
||||||
|
@ -278,7 +278,7 @@ preview_fifo() {
|
||||||
kill "$(cat "$PAGERPID" 2>/dev/null)" >/dev/null 2>&1
|
kill "$(cat "$PAGERPID" 2>/dev/null)" >/dev/null 2>&1
|
||||||
[ "$TERMINAL" != "kitty" ] && exists ueberzug && ueberzug_remove
|
[ "$TERMINAL" != "kitty" ] && exists ueberzug && ueberzug_remove
|
||||||
preview_file "$selection"
|
preview_file "$selection"
|
||||||
echo "$selection" > "$CURSEL"
|
printf "%s" "$selection" > "$CURSEL"
|
||||||
done
|
done
|
||||||
[ "$TERMINAL" != "kitty" ] && exists ueberzug && rm "$FIFO_UEBERZUG"
|
[ "$TERMINAL" != "kitty" ] && exists ueberzug && rm "$FIFO_UEBERZUG"
|
||||||
rm "$PAGERPID" "$GIFPID" "$CURSEL" >/dev/null 2>&1
|
rm "$PAGERPID" "$GIFPID" "$CURSEL" >/dev/null 2>&1
|
||||||
|
@ -286,12 +286,6 @@ preview_fifo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$PREVIEW_MODE" ]; then
|
if [ "$PREVIEW_MODE" ]; then
|
||||||
if [ ! -r "$NNN_FIFO" ]; then
|
|
||||||
echo "No FIFO available! (\$NNN_FIFO='$NNN_FIFO')" >&2
|
|
||||||
read -r
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$TERMINAL" != "kitty" ] && exists ueberzug; then
|
if [ "$TERMINAL" != "kitty" ] && exists ueberzug; then
|
||||||
mkfifo "$FIFO_UEBERZUG"
|
mkfifo "$FIFO_UEBERZUG"
|
||||||
trap 'ueberzug_refresh; rm $FIFO_UEBERZUG' WINCH
|
trap 'ueberzug_refresh; rm $FIFO_UEBERZUG' WINCH
|
||||||
|
@ -302,6 +296,18 @@ if [ "$PREVIEW_MODE" ]; then
|
||||||
preview_file "$1"
|
preview_file "$1"
|
||||||
preview_fifo 2>/dev/null &
|
preview_fifo 2>/dev/null &
|
||||||
wait
|
wait
|
||||||
fi
|
else
|
||||||
|
if [ ! -r "$NNN_FIFO" ]; then
|
||||||
|
clear
|
||||||
|
printf "No FIFO available! (\$NNN_FIFO='%s')\nPlease read the documentation" "$NNN_FIFO"
|
||||||
|
read -r _
|
||||||
|
elif [ "$KITTY_WINDOW_ID" ] && [ -z "$KITTY_LISTEN_ON" ]; then
|
||||||
|
# The escape codes used to control kitty splits cause problems when run from a background process.
|
||||||
|
# Use --listen-on flag or listen_on config variable to avoid(https://sw.kovidgoyal.net/kitty/conf.html)
|
||||||
|
clear
|
||||||
|
printf "\$KITTY_LISTEN_ON not set!\nPlease add listen_on to your kitty.conf or start with the --listen-on flag."
|
||||||
|
read -r _
|
||||||
|
else
|
||||||
togglepreview "$1" &
|
togglepreview "$1" &
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
# Dependencies:
|
# Dependencies:
|
||||||
# - Supports 4 independent methods to preview with:
|
# - Supports 4 independent methods to preview with:
|
||||||
# - tmux (>=3.0), or
|
# - tmux (>=3.0), or
|
||||||
# - kitty with allow_remote_control on, or
|
# - kitty with allow_remote_control and listen_on set in kitty.conf, or
|
||||||
# - QuickLook on WSL (https://github.com/QL-Win/QuickLook)
|
# - QuickLook on WSL (https://github.com/QL-Win/QuickLook)
|
||||||
# - $TERMINAL set to a terminal (it's xterm by default).
|
# - $TERMINAL set to a terminal (it's xterm by default).
|
||||||
# - less or $PAGER
|
# - less or $PAGER
|
||||||
|
@ -71,6 +71,7 @@
|
||||||
#
|
#
|
||||||
# Shell: POSIX compliant
|
# Shell: POSIX compliant
|
||||||
# Authors: Todd Yamakawa, Léo Villeveygoux, @Recidiviste, Mario Ortiz Manero, Luuk van Baal
|
# Authors: Todd Yamakawa, Léo Villeveygoux, @Recidiviste, Mario Ortiz Manero, Luuk van Baal
|
||||||
|
|
||||||
SPLIT="$SPLIT" # you can set a permanent split here
|
SPLIT="$SPLIT" # you can set a permanent split here
|
||||||
TERMINAL="$TERMINAL" # same goes for the terminal
|
TERMINAL="$TERMINAL" # same goes for the terminal
|
||||||
USE_SCOPE="${USE_SCOPE:-0}"
|
USE_SCOPE="${USE_SCOPE:-0}"
|
||||||
|
@ -94,7 +95,7 @@ startpreview() {
|
||||||
|
|
||||||
if [ -e "${TMUX%%,*}" ] && tmux -V | grep -q '[ -][3456789]\.'; then
|
if [ -e "${TMUX%%,*}" ] && tmux -V | grep -q '[ -][3456789]\.'; then
|
||||||
TERMINAL=tmux
|
TERMINAL=tmux
|
||||||
elif [ -n "$KITTY_WINDOW_ID" ] && kitty @ ls >/dev/null 2>&1; then
|
elif [ -n "$KITTY_LISTEN_ON" ]; then
|
||||||
TERMINAL=kitty
|
TERMINAL=kitty
|
||||||
else
|
else
|
||||||
TERMINAL="${TERMINAL:-xterm}"
|
TERMINAL="${TERMINAL:-xterm}"
|
||||||
|
@ -169,7 +170,7 @@ fifo_pager() {
|
||||||
mkfifo "$tmpfifopath" || return
|
mkfifo "$tmpfifopath" || return
|
||||||
|
|
||||||
$PAGER < "$tmpfifopath" &
|
$PAGER < "$tmpfifopath" &
|
||||||
echo "$!" > "$PAGERPID"
|
printf "%s" "$!" > "$PAGERPID"
|
||||||
|
|
||||||
(
|
(
|
||||||
exec > "$tmpfifopath"
|
exec > "$tmpfifopath"
|
||||||
|
@ -316,7 +317,7 @@ generate_preview() {
|
||||||
done
|
done
|
||||||
[ "$LOOP_GIFS" -eq 0 ] && return
|
[ "$LOOP_GIFS" -eq 0 ] && return
|
||||||
done &
|
done &
|
||||||
echo "$!" > "$GIFPID"
|
printf "%s" "$!" > "$GIFPID"
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
image_preview "$1" "$2" "$3"
|
image_preview "$1" "$2" "$3"
|
||||||
|
@ -324,7 +325,7 @@ generate_preview() {
|
||||||
fi ;;
|
fi ;;
|
||||||
image) convert "$3" -flatten -resize "$NNN_PREVIEWWIDTH"x"$NNN_PREVIEWHEIGHT"\> "$NNN_PREVIEWDIR/$3.jpg" ;;
|
image) convert "$3" -flatten -resize "$NNN_PREVIEWWIDTH"x"$NNN_PREVIEWHEIGHT"\> "$NNN_PREVIEWDIR/$3.jpg" ;;
|
||||||
office) libreoffice --convert-to jpg "$3" --outdir "$NNN_PREVIEWDIR/${3%/*}" > /dev/null 2>&1
|
office) libreoffice --convert-to jpg "$3" --outdir "$NNN_PREVIEWDIR/${3%/*}" > /dev/null 2>&1
|
||||||
filename="$(echo "${3##*/}" | cut -d. -f1)"
|
filename="$(printf "%s" "${3##*/}" | cut -d. -f1)"
|
||||||
mv "$NNN_PREVIEWDIR/${3%/*}/$filename.jpg" "$NNN_PREVIEWDIR/$3.jpg" ;;
|
mv "$NNN_PREVIEWDIR/${3%/*}/$filename.jpg" "$NNN_PREVIEWDIR/$3.jpg" ;;
|
||||||
pdf) pdftoppm -jpeg -f 1 -singlefile "$3" "$NNN_PREVIEWDIR/$3" >/dev/null 2>&1 ;;
|
pdf) pdftoppm -jpeg -f 1 -singlefile "$3" "$NNN_PREVIEWDIR/$3" >/dev/null 2>&1 ;;
|
||||||
video) ffmpegthumbnailer -m -s0 -i "$3" -o "$NNN_PREVIEWDIR/$3.jpg" >/dev/null 2>&1 || rm "$NNN_PREVIEWDIR/$3.jpg" ;;
|
video) ffmpegthumbnailer -m -s0 -i "$3" -o "$NNN_PREVIEWDIR/$3.jpg" >/dev/null 2>&1 || rm "$NNN_PREVIEWDIR/$3.jpg" ;;
|
||||||
|
@ -346,10 +347,10 @@ image_preview() {
|
||||||
ueberzug_layer "$1" "$2" "$3"
|
ueberzug_layer "$1" "$2" "$3"
|
||||||
elif exists catimg; then
|
elif exists catimg; then
|
||||||
catimg "$3" &
|
catimg "$3" &
|
||||||
echo "$!" > "$GIFPID"
|
printf "%s" "$!" > "$GIFPID"
|
||||||
elif exists viu; then
|
elif exists viu; then
|
||||||
viu -t "$3" &
|
viu -t "$3" &
|
||||||
echo "$!" > "$GIFPID"
|
printf "%s" "$!" > "$GIFPID"
|
||||||
else
|
else
|
||||||
fifo_pager print_bin_info "$3"
|
fifo_pager print_bin_info "$3"
|
||||||
fi
|
fi
|
||||||
|
@ -370,7 +371,7 @@ ueberzug_refresh() {
|
||||||
pkill -f -n preview-tui-ext >/dev/null 2>&1
|
pkill -f -n preview-tui-ext >/dev/null 2>&1
|
||||||
tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser json &
|
tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser json &
|
||||||
preview_file "$(cat "$CURSEL")"
|
preview_file "$(cat "$CURSEL")"
|
||||||
echo > "$NNN_FIFO"
|
printf "\n" > "$NNN_FIFO"
|
||||||
preview_fifo 2>/dev/null &
|
preview_fifo 2>/dev/null &
|
||||||
wait
|
wait
|
||||||
}
|
}
|
||||||
|
@ -384,7 +385,7 @@ preview_fifo() {
|
||||||
kill "$(cat "$PAGERPID" 2>/dev/null)" >/dev/null 2>&1
|
kill "$(cat "$PAGERPID" 2>/dev/null)" >/dev/null 2>&1
|
||||||
[ "$TERMINAL" != "kitty" ] && exists ueberzug && ueberzug_remove
|
[ "$TERMINAL" != "kitty" ] && exists ueberzug && ueberzug_remove
|
||||||
preview_file "$selection"
|
preview_file "$selection"
|
||||||
echo "$selection" > "$CURSEL"
|
printf "%s" "$selection" > "$CURSEL"
|
||||||
done
|
done
|
||||||
[ "$TERMINAL" != "kitty" ] && exists ueberzug && rm "$FIFO_UEBERZUG"
|
[ "$TERMINAL" != "kitty" ] && exists ueberzug && rm "$FIFO_UEBERZUG"
|
||||||
rm "$PAGERPID" "$GIFPID" "$CURSEL" >/dev/null 2>&1
|
rm "$PAGERPID" "$GIFPID" "$CURSEL" >/dev/null 2>&1
|
||||||
|
@ -392,12 +393,6 @@ preview_fifo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$PREVIEW_MODE" ]; then
|
if [ "$PREVIEW_MODE" ]; then
|
||||||
if [ ! -r "$NNN_FIFO" ]; then
|
|
||||||
echo "No FIFO available! (\$NNN_FIFO='$NNN_FIFO')" >&2
|
|
||||||
read -r
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$TERMINAL" != "kitty" ] && exists ueberzug; then
|
if [ "$TERMINAL" != "kitty" ] && exists ueberzug; then
|
||||||
mkfifo "$FIFO_UEBERZUG"
|
mkfifo "$FIFO_UEBERZUG"
|
||||||
trap 'ueberzug_refresh; rm $FIFO_UEBERZUG' WINCH
|
trap 'ueberzug_refresh; rm $FIFO_UEBERZUG' WINCH
|
||||||
|
@ -408,6 +403,18 @@ if [ "$PREVIEW_MODE" ]; then
|
||||||
preview_file "$1"
|
preview_file "$1"
|
||||||
preview_fifo 2>/dev/null &
|
preview_fifo 2>/dev/null &
|
||||||
wait
|
wait
|
||||||
fi
|
else
|
||||||
|
if [ ! -r "$NNN_FIFO" ]; then
|
||||||
|
clear
|
||||||
|
printf "No FIFO available! (\$NNN_FIFO='%s')\nPlease read the documentation" "$NNN_FIFO"
|
||||||
|
read -r _
|
||||||
|
elif [ "$KITTY_WINDOW_ID" ] && [ -z "$KITTY_LISTEN_ON" ]; then
|
||||||
|
# The escape codes used to control kitty splits cause problems when run from a background process.
|
||||||
|
# Use --listen-on flag or listen_on config variable to avoid(https://sw.kovidgoyal.net/kitty/conf.html)
|
||||||
|
clear
|
||||||
|
printf "\$KITTY_LISTEN_ON not set!\nPlease add listen_on to your kitty.conf or start with the --listen-on flag."
|
||||||
|
read -r _
|
||||||
|
else
|
||||||
togglepreview "$1" &
|
togglepreview "$1" &
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in a new issue