From d9834ae4ec60c2816520f199313241c37bec7460 Mon Sep 17 00:00:00 2001 From: ziro Date: Sun, 13 Mar 2022 16:57:38 +0700 Subject: [PATCH] lf stuff --- .config/lf/lfrc | 7 ++-- .config/lf/scripts/cleaner | 4 ++ .config/lf/scripts/draw_img.sh | 67 ---------------------------------- .config/lf/scripts/image | 6 +++ .config/lf/scripts/previewer | 38 +++++++++++++++++-- .config/vim/vim_idea | 1 + 6 files changed, 48 insertions(+), 75 deletions(-) create mode 100755 .config/lf/scripts/cleaner delete mode 100755 .config/lf/scripts/draw_img.sh create mode 100755 .config/lf/scripts/image diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 06b57d9..20f07df 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -1,10 +1,8 @@ # Config set preview true -#set previewer ~/.config/lf/preview set previewer ~/.config/lf/scripts/previewer -#set previewer ~/.config/lf/scripts/scope +set cleaner ~/.config/lf/scripts/cleaner set icons true -set color256 set hidden true set ignorecase true set smartcase true @@ -60,12 +58,13 @@ cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1 map d # Basic Functions -map set hidden! +map set hidden! map dD delete map dd cut map p paste map y copy map open +map quit #map mf mkfile #map mr sudomkfile map md mkdir diff --git a/.config/lf/scripts/cleaner b/.config/lf/scripts/cleaner new file mode 100755 index 0000000..a6145e8 --- /dev/null +++ b/.config/lf/scripts/cleaner @@ -0,0 +1,4 @@ +#!/bin/sh +if [ -n "$FIFO_UEBERZUG" ]; then + printf '{"action": "remove", "identifier": "preview"}\n' >"$FIFO_UEBERZUG" +fi diff --git a/.config/lf/scripts/draw_img.sh b/.config/lf/scripts/draw_img.sh deleted file mode 100755 index 5a70d5e..0000000 --- a/.config/lf/scripts/draw_img.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash - -clear_screen() { - printf '\e[%sH\e[9999C\e[1J%b\e[1;%sr' \ - "$((LINES-2))" "${TMUX:+\e[2J}" "$max_items" -} - -# Get a file's mime_type. -mime_type=$(file -bi "$1") - -# File isn't an image file, give warning. -if [[ $mime_type != image/* ]]; then - lf -remote "send $id echoerr 'Not an image'" - exit -fi - -w3m_paths=(/usr/{local/,}{lib,libexec,lib64,libexec64}/w3m/w3mi*) -read -r w3m _ < <(type -p w3mimgdisplay "${w3m_paths[@]}") -read -r LINES COLUMNS < <(stty size) - -# Get terminal window size in pixels and set it to WIDTH and HEIGHT. -export $(xdotool getactivewindow getwindowgeometry --shell) - -# Get the image size in pixels. -read -r img_width img_height < <("$w3m" <<< "5;${CACHE:-$1}") - -((img_width > WIDTH)) && { - ((img_height=img_height*WIDTH/img_width)) - ((img_width=WIDTH)) -} - -((img_height > HEIGHT)) && { - ((img_width=img_width*HEIGHT/img_height)) - ((img_height=HEIGHT)) -} - -# Variable needed for centering image. -HALF_HEIGHT=$(expr $HEIGHT / 2) -HALF_WIDTH=$(expr $WIDTH / 2) -HALF_IMG_HEIGHT=$(expr $img_height / 2) -HALF_IMG_WIDTH=$(expr $img_width / 2) -X_POS=$(expr $HALF_WIDTH - $HALF_IMG_WIDTH) -Y_POS=$(expr $HALF_HEIGHT - $HALF_IMG_HEIGHT) - -clear_screen -# Hide the cursor. -printf '\e[?25l' - -# Display the image. -printf '0;1;%s;%s;%s;%s;;;;;%s\n3;\n4\n' \ - ${X_POS:-0} \ - ${Y_POS:-0} \ - "$img_width" \ - "$img_height" \ - "${CACHE:-$1}" | "$w3m" &>/dev/null - -# Wait for user input. -read -ern 1 - -# Clear the image. -printf '6;%s;%s;%s;%s\n3;' \ - "${X_POS:-0}" \ - "${Y_POS:-0}" \ - "$WIDTH" \ - "$HEIGHT" | "$w3m" &>/dev/null - -clear_screen diff --git a/.config/lf/scripts/image b/.config/lf/scripts/image new file mode 100755 index 0000000..e5bbd09 --- /dev/null +++ b/.config/lf/scripts/image @@ -0,0 +1,6 @@ +#!/bin/sh +if [ -n "$FIFO_UEBERZUG" ]; then + path="$(printf '%s' "$1" | sed 's/\\/\\\\/g;s/"/\\"/g')" + printf '{"action": "add", "identifier": "preview", "x": %d, "y": %d, "width": %d, "height": %d, "scaler": "contain", "scaling_position_x": 0.5, "scaling_position_y": 0.5, "path": "%s"}\n' \ + "$4" "$5" "$2" "$3" "$1" >"$FIFO_UEBERZUG" +fi diff --git a/.config/lf/scripts/previewer b/.config/lf/scripts/previewer index 26e013d..7be168c 100755 --- a/.config/lf/scripts/previewer +++ b/.config/lf/scripts/previewer @@ -1,6 +1,36 @@ #!/bin/sh -case "$1" in - *.png|*.jpg|*.jpeg|*.mp4|*.mkv) mediainfo "$1";; - *) bat "$1";; - *.md) glow -p -s dark "$1";; + +draw() { + ~/.config/lf/scripts/image "$@" + exit 1 +} + + +cache() { + if [ -f "$1" ]; then + draw "$@" + fi +} + +case "$(file --dereference --brief --mime-type -- "$1")" in + text/*) bat --terminal-width "$4" -f "$1" ;; + image/*|video/*) mediainfo "$1" ;; + # image/*) + # [ -n "$FIFO_UEBERZUG" ] && + # orientation="$(identify -format '%[EXIF:Orientation]\n' -- "$file")" + # if [ -n "$orientation" ] && [ "$orientation" != 1 ]; then + # cache="$(hash "$file").jpg" + # cache "$cache" "$@" + # convert -- "$file" -auto-orient "$cache" + # draw "$cache" "$@" + # else + # draw "$file" "$@" + # fi + # ;; esac + +# case "$1" in +# *.png|*.jpg|*.jpeg|*.mp4|*.mkv) mediainfo "$1";; +# *) bat "$1";; +# *.md) glow -p -s dark "$1";; +# esac diff --git a/.config/vim/vim_idea b/.config/vim/vim_idea index 81c6480..cd4fdbc 100644 --- a/.config/vim/vim_idea +++ b/.config/vim/vim_idea @@ -6,3 +6,4 @@ " augroup END map r (RenameElement) +unmap