summaryrefslogtreecommitdiff
path: root/lf
diff options
context:
space:
mode:
Diffstat (limited to 'lf')
-rwxr-xr-xlf/3q2
-rwxr-xr-xlf/cleaner4
-rwxr-xr-xlf/image7
-rw-r--r--lf/lfrc10
-rwxr-xr-xlf/preview91
-rwxr-xr-xlf/previewer36
6 files changed, 48 insertions, 102 deletions
diff --git a/lf/3q b/lf/3q
deleted file mode 100755
index 06ec272..0000000
--- a/lf/3q
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-chafa "$1"
diff --git a/lf/cleaner b/lf/cleaner
index a184d84..af197ee 100755
--- a/lf/cleaner
+++ b/lf/cleaner
@@ -1,4 +1,2 @@
#!/bin/sh
-if [ -n "$FIFO_UEBERZUG" ]; then
- printf '{"action": "remove", "identifier": "PREVIEW"}\n' > "$FIFO_UEBERZUG"
-fi
+exec kitten icat --clear --stdin no --transfer-mode memory </dev/null >/dev/tty
diff --git a/lf/image b/lf/image
index 77ddb5b..622aaf2 100755
--- a/lf/image
+++ b/lf/image
@@ -7,9 +7,10 @@ main() {
> "$FIFO_UEBERZUG"
;;
"draw")
- declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" \
- [x]="$3" [y]="$4" [max_width]="$5" [max_height]="$6" \
- [path]="$2") > "$FIFO_UEBERZUG"
+ kitten icat --stdin no --transfer-mode memory --place"${5}x${6}@${3}x${4}" "$1" /dev/tty
+ #declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW" \
+ #[x]="$3" [y]="$4" [max_width]="$5" [max_height]="$6" \
+ #[path]="$2") > "$FIFO_UEBERZUG"
;;
"*") echo "Unknown command: '$1', '$2'" ;;
esac
diff --git a/lf/lfrc b/lf/lfrc
index df622de..32c9a10 100644
--- a/lf/lfrc
+++ b/lf/lfrc
@@ -1,7 +1,8 @@
set ratios 1:2:3
+set previewer ~/.config/lf/previewer
set cleaner ~/.config/lf/cleaner
-set previewer ~/.config/lf/preview
# Basic Settings
+set sixel true
set preview true
set drawbox false
set icons true
@@ -13,6 +14,9 @@ cmd open ${{
jnlp)
javaws "$f"
;;
+ mp3|flac|webm|ogg)
+ mpv "$f"
+ ;;
*)
case $(file --mime-type "$f" -bL) in
text/*|application/json) $EDITOR "$f" ;;
@@ -46,9 +50,9 @@ cmd chmod ${{
printf "Mode Bits: "
read ans
- for file in "$fx"
+ echo "$fx" | while read file
do
- chmod $ans $file
+ chmod "$ans" "$file"
done
}}
diff --git a/lf/preview b/lf/preview
deleted file mode 100755
index 6140cf7..0000000
--- a/lf/preview
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/sh
-
-image() {
- geometry="$(($2-2))x$3"
- chafa "$1" -f sixel -s "$geometry" --animate false | fold -w 65535
-}
-
-batorcat() {
- file="$1"
- shift
- if command -v bat > /dev/null 2>&1
- then
- bat --color=always --style=plain --pager=never "$file" "$@"
- else
- cat "$file"
- fi
-}
-
-glowormdcat() {
- file="$1"
- shift
- if command -v glow > /dev/null 2>&1
- then
- glow "$file"
- else
- mdcat "$file"
- fi
-}
-
-CACHE="$HOME/.cache/lf/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}'))"
-
-case "$(printf "%s\n" "$(readlink -f "$1")" | awk '{print tolower($0)}')" in
- *.tgz|*.tar.gz) tar tzf "$1" ;;
- *.tar.bz2|*.tbz2) tar tjf "$1" ;;
- *.tar.txz|*.txz) xz --list "$1" ;;
- *.tar) tar tf "$1" ;;
- *.zip|*.jar|*.war|*.ear|*.oxt) unzip -l "$1" ;;
- *.rar) unrar l "$1" ;;
- *.md)
- glowormdcat "$1";;
- *.7z) 7z l "$1" ;;
- *.[1-8]) man "$1" | col -b ;;
- *.o) nm "$1";;
- *.torrent) transmission-show "$1" ;;
- *.iso) iso-info --no-header -l "$1" ;;
- *.odt|*.ods|*.odp|*.sxw) odt2txt "$1" ;;
- *.doc) catdoc "$1" ;;
- *.docx) docx2txt "$1" ;;
- *.xml|*.html) w3m -dump "$1";;
- *.xls|*.xlsx)
- ssconvert --export-type=Gnumeric_stf:stf_csv "$1" "fd://1" | batorcat --language=csv
- ;;
- *.wav|*.mp3|*.flac|*.m4a|*.wma|*.ape|*.ac3|*.og[agx]|*.spx|*.opus|*.as[fx]|*.mka)
- exiftool "$1"
- ;;
- *.pdf)
- [ ! -f "${CACHE}.jpg" ] && \
- pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE"
- image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
- ;;
- *.epub)
- [ ! -f "$CACHE" ] && \
- epub-thumbnailer "$1" "$CACHE" 1024
- image "$CACHE" "$2" "$3" "$4" "$5"
- ;;
- *.cbz|*.cbr|*.cbt)
- [ ! -f "$CACHE" ] && \
- comicthumb "$1" "$CACHE" 1024
- image "$CACHE" "$2" "$3" "$4" "$5"
- ;;
- *.avi|*.mp4|*.wmv|*.dat|*.3gp|*.ogv|*.mkv|*.mpg|*.mpeg|*.vob|*.fl[icv]|*.m2v|*.mov|*.webm|*.ts|*.mts|*.m4v|*.r[am]|*.qt|*.divx)
- [ ! -f "${CACHE}.jpg" ] && \
- ffmpegthumbnailer -i "$1" -o "${CACHE}.jpg" -s 0 -q 5
- image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
- ;;
- *.bmp|*.jpg|*.jpeg|*.png|*.xpm|*.webp|*.tiff|*.gif|*.jfif|*.ico)
- image "$1" "$2" "$3" "$4" "$5"
- ;;
- *.svg)
- [ ! -f "${CACHE}.jpg" ] && \
- convert "$1" "${CACHE}.jpg"
- image "${CACHE}.jpg" "$2" "$3" "$4" "$5"
- ;;
- *.ino)
- batorcat --language=cpp "$1"
- ;;
- *)
- batorcat "$1"
- ;;
-esac
-exit 0
diff --git a/lf/previewer b/lf/previewer
new file mode 100755
index 0000000..24db043
--- /dev/null
+++ b/lf/previewer
@@ -0,0 +1,36 @@
+#!/bin/sh
+draw() {
+ kitten icat --stdin no --transfer-mode memory --place "${w}x${h}@${x}x${y}" "$1" </dev/null >/dev/tty
+ exit 1
+}
+
+file="$1"
+w="$2"
+h="$3"
+x="$4"
+y="$5"
+
+case "$(file -Lb --mime-type "$file")" in
+ image/*)
+ draw "$file"
+ ;;
+ video/*)
+ # vidthumb is from here:
+ # https://raw.githubusercontent.com/duganchen/kitty-pistol-previewer/main/vidthumb
+ draw "$(vidthumb "$file")"
+ ;;
+ application/pdf)
+ CACHE=$(mktemp /tmp/thumbcache.XXXXX)
+ pdftoppm -png -f 1 -singlefile "$1" "$CACHE"
+ draw "$CACHE.png"
+ rm -f "$CACHE" "$CACHE.png"
+ ;;
+ application/epub+zip|application/epub)
+ CACHE=$(mktemp /tmp/thumbcache.XXXXX)
+ epub-thumbnailer "$1" "$CACHE" 1024
+ $HOME/.config/lf/image draw "$CACHE"
+ rm -f "$CACHE" "$CACHE.png"
+ ;;
+esac
+
+pistol "$file"