diff --git a/.config/lf/scope b/.config/lf/scope index 2406199..45f9f33 100755 --- a/.config/lf/scope +++ b/.config/lf/scope @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -C -f -u #IFS=$'\n' @@ -18,109 +18,41 @@ IFS="$(printf '%b_' '\n')"; IFS="${IFS%_}" # Script arguments FILE_PATH="${1}" # Full path of the highlighted file +HEIGHT="${2}" -FILE_EXTENSION="${FILE_PATH##*.}" -FILE_EXTENSION_LOWER=$(echo ${FILE_EXTENSION} | tr '[:upper:]' '[:lower:]') +#FILE_EXTENSION="${FILE_PATH##*.}" +#FILE_EXTENSION_LOWER=$(echo ${FILE_EXTENSION} | tr '[:upper:]' '[:lower:]') # Settings HIGHLIGHT_SIZE_MAX=262143 # 256KiB HIGHLIGHT_TABWIDTH=8 HIGHLIGHT_STYLE='pablo' -#PYGMENTIZE_STYLE='autumn' -handle_extension() { - case "${FILE_EXTENSION_LOWER}" in - # Archive - a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ - rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) - atool --list -- "${FILE_PATH}" - bsdtar --list --file "${FILE_PATH}" - exit 1;; - rar) - # Avoid password prompt by providing empty password - unrar lt -p- -- "${FILE_PATH}" - exit 1;; - 7z) - # Avoid password prompt by providing empty password - 7z l -p -- "${FILE_PATH}" - exit 1;; - - # PDF - pdf) - # Preview as text conversion - pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - - mutool draw -F txt -i -- "${FILE_PATH}" 1-10 - exiftool "${FILE_PATH}" - exit 1;; - - # BitTorrent - torrent) - transmission-show -- "${FILE_PATH}" - exit 1;; - - # OpenDocument - odt|ods|odp|sxw) - # Preview as text conversion - odt2txt "${FILE_PATH}" - exit 1;; - - # HTML - htm|html|xhtml) - # Preview as text conversion - w3m -dump "${FILE_PATH}" - lynx -dump -- "${FILE_PATH}" - elinks -dump "${FILE_PATH}" - ;; # Continue with next handler on failure - 1) man ./ "${FILE_PATH}" | col -b ;; - esac -} - handle_mime() { local mimetype="${1}" case "${mimetype}" in - # Text - text/* | */xml) - # Syntax highlight + text/html) w3m -dump "${FILE_PATH}" ;; + text/troff) man ./ "${FILE_PATH}" | col -b ;; + text/* | */xml) if [ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]; then exit 2 fi if [ "$( tput colors )" -ge 256 ]; then - local pygmentize_format='terminal256' local highlight_format='xterm256' else - local pygmentize_format='terminal' local highlight_format='ansi' fi highlight --replace-tabs="${HIGHLIGHT_TABWIDTH}" --out-format="${highlight_format}" \ - --style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" - # pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}" -- "${FILE_PATH}" - exit 2;; - - # Image - image/*) - # Preview as text conversion - # img2txt --gamma=0.6 -- "${FILE_PATH}" && exit 1 - exiftool "${FILE_PATH}" - exit 1;; - - # Video and audio - video/* | audio/*|application/octet-stream) - mediainfo "${FILE_PATH}" - exiftool "${FILE_PATH}" - exit 1;; + --style="${HIGHLIGHT_STYLE}" --force -- "${FILE_PATH}" ;; + application/zip) atool --list -- "${FILE_PATH}" ;; + image/*) chafa --fill=block --symbols=block -c 256 -s 80x"${HEIGHT}" "${FILE_PATH}" || exit 1;; + video/* | audio/*|application/octet-stream) mediainfo "${FILE_PATH}" || exit 1;; + */pdf) pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - ;; + *opendocument*) odt2txt "${FILE_PATH}" ;; esac } -handle_fallback() { - echo '----- File Type Classification -----' && file --dereference --brief -- "${FILE_PATH}" - exit 1 -} - - MIMETYPE="$( file --dereference --brief --mime-type -- "${FILE_PATH}" )" -handle_extension handle_mime "${MIMETYPE}" -handle_fallback - exit 1