From 4ceb73dc53bd3b1bca5530b42492ca0c3f5fbf65 Mon Sep 17 00:00:00 2001 From: Luke Smith Date: Thu, 23 May 2019 22:59:30 -0400 Subject: lf config added --- .config/lf/scope | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100755 .config/lf/scope (limited to '.config/lf/scope') diff --git a/.config/lf/scope b/.config/lf/scope new file mode 100755 index 0000000..2406199 --- /dev/null +++ b/.config/lf/scope @@ -0,0 +1,126 @@ +#!/bin/sh + +set -C -f -u +#IFS=$'\n' +IFS="$(printf '%b_' '\n')"; IFS="${IFS%_}" + +# ANSI color codes are supported. +# STDIN is disabled, so interactive scripts won't work properly + +# This script is considered a configuration file and must be updated manually. + +# Meanings of exit codes: +# code | meaning | action of ranger +# -----+------------+------------------------------------------- +# 0 | success | Display stdout as preview +# 1 | no preview | Display no preview at all +# 2 | plain text | Display the plain content of the file + +# Script arguments +FILE_PATH="${1}" # Full path of the highlighted file + +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 + 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;; + 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 -- cgit v1.3.1