diff options
| author | 2020-05-22 04:48:00 +0200 | |
|---|---|---|
| committer | 2020-05-22 08:18:00 +0530 | |
| commit | adf381acee7a341c07ecd8514f1fc526bbb1abfd (patch) | |
| tree | 3bdc995c3861793ea077fe4552d8d801704ef998 | |
| parent | a4909beb441aee350ff6508292f282bde5219516 (diff) | |
| download | nnn-adf381acee7a341c07ecd8514f1fc526bbb1abfd.tar.gz | |
Change binary file detection in preview-tui/kitty (#587)
| -rwxr-xr-x | plugins/preview-kitty | 13 | ||||
| -rwxr-xr-x | plugins/preview-tui | 12 |
2 files changed, 13 insertions, 12 deletions
diff --git a/plugins/preview-kitty b/plugins/preview-kitty index 4bff54d..8ebf86f 100755 --- a/plugins/preview-kitty +++ b/plugins/preview-kitty @@ -31,22 +31,23 @@ preview_file () { lines=$(($(tput lines)-1)) cols=$(tput cols) mime="$(file -b --mime-type "$1")" + encoding="$(file -b --mime-encoding "$1")" if [ -d "$1" ]; then # Print directory tree # shellcheck disable=SC2015 cd "$1" && \ COLUMNS=$cols exa -G --colour=always 2>/dev/null || ls --color=alway - elif [ "${mime%%/*}" = "text" ] ; then - # Print file head - bat --terminal-width="$cols" --paging=never --decorations=always \ - --color=always "$1" 2>/dev/null || cat elif [ "${mime%%/*}" = "image" ] ; then kitty +kitten icat --silent --transfer-mode=stream --stdin=no "$1" - else - # Binary file + elif [ "$encoding" = "binary" ] ; then + # Binary file: show file info printf -- "-------- \033[1;31mBinary file\033[0m --------\n" mediainfo "$1" 2>/dev/null || file -b "$1" + else + # Text file: print colored file content + bat --terminal-width="$cols" --paging=never --decorations=always \ + --color=always "$1" 2>/dev/null || cat fi | head -n $lines } diff --git a/plugins/preview-tui b/plugins/preview-tui index 3ebf195..5e1fd67 100755 --- a/plugins/preview-tui +++ b/plugins/preview-tui @@ -27,18 +27,18 @@ preview_file () { clear lines=$(($(tput lines)-1)) cols=$(tput cols) - mime="$(file -b --mime-type "$1")" + encoding="$(file -b --mime-encoding "$1")" if [ -d "$1" ]; then # Print directory tree cd "$1" && tree | head -n $lines | cut -c 1-"$cols" - elif [ "${mime%%/*}" = "text" ] ; then - # Print file head - head -n $lines "$1" | cut -c 1-"$cols" - else - # Binary file + elif [ "$encoding" = "binary" ] ; then + # Binary file: just print filetype info echo "-------- Binary file --------" file -b "$1" + else + # Text file: print file head + head -n $lines "$1" | cut -c 1-"$cols" fi } |