Fix LF previewer
This commit is contained in:
parent
b56563cf07
commit
0c9bdf42ec
1 changed files with 87 additions and 31 deletions
|
|
@ -1,13 +1,9 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
cleaner = pkgs.writeShellScript "cleaner" ''
|
cleaner = pkgs.writeShellScript "cleaner" ''
|
||||||
file=$1
|
kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
|
||||||
|
|
||||||
case $TERM in
|
|
||||||
xterm-kitty ) kitty +icat --clear --silent --transfer-mode $file; ;;
|
|
||||||
* ) exit 0 ;;
|
|
||||||
esac
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
previewer = pkgs.writeShellScript "previewer" ''
|
previewer = pkgs.writeShellScript "previewer" ''
|
||||||
file=$1
|
file=$1
|
||||||
w=$2
|
w=$2
|
||||||
|
|
@ -15,10 +11,44 @@ let
|
||||||
x=$4
|
x=$4
|
||||||
y=$5
|
y=$5
|
||||||
|
|
||||||
case $TERM in
|
preview() {
|
||||||
xterm-kitty ) kitty +icat --silent --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file"; ;;
|
kitty +kitten icat --silent --stdin no --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$1" < /dev/null > /dev/tty
|
||||||
* ) ${pkgs.pistol}/bin/pistol "$file"; ;;
|
}
|
||||||
|
|
||||||
|
TEMPDIR=~/.cache/lf
|
||||||
|
|
||||||
|
file="$1"; shift
|
||||||
|
case "$(basename "$file" | tr '[A-Z]' '[a-z]')" in
|
||||||
|
*.tar*) tar tf "$file" ;;
|
||||||
|
*.zip) unzip -l "$file" ;;
|
||||||
|
*.rar) unrar l "$file" ;;
|
||||||
|
*.7z) 7z l "$file" ;;
|
||||||
|
*.avi|*.mp4|*.mkv)
|
||||||
|
thumbnail="$TEMPDIR/thumbnail.png"
|
||||||
|
ffmpeg -y -i "$file" -vframes 1 "$thumbnail"
|
||||||
|
preview "$thumbnail"
|
||||||
|
;;
|
||||||
|
*.pdf)
|
||||||
|
thumbnail="$TEMPDIR/thumbnail.png"
|
||||||
|
gs -o "$thumbnail" -sDEVICE=pngalpha -dLastPage=1 "$file" >/dev/null
|
||||||
|
preview "$thumbnail"
|
||||||
|
;;
|
||||||
|
*.jpg|*.jpeg|*.png|*.bmp)
|
||||||
|
preview "$file"
|
||||||
|
;;
|
||||||
|
*.ttf|*.otf|*.woff)
|
||||||
|
thumbnail="$TEMPDIR/thumbnail.png"
|
||||||
|
fontpreview -i "$file" -o "$thumbnail"
|
||||||
|
preview "$thumbnail"
|
||||||
|
;;
|
||||||
|
*.svg)
|
||||||
|
thumbnail="$TEMPDIR/thumbnail.png"
|
||||||
|
convert "$file" "$thumbnail"
|
||||||
|
preview "$thumbnail"
|
||||||
|
;;
|
||||||
|
*) lf_bat_preview "$file" ;;
|
||||||
esac
|
esac
|
||||||
|
return 127 # nonzero retcode required for lf previews to reload
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -31,6 +61,7 @@ in
|
||||||
number = true;
|
number = true;
|
||||||
# scrollof = 3;
|
# scrollof = 3;
|
||||||
hidden = true;
|
hidden = true;
|
||||||
|
ignorecase = true;
|
||||||
tabstop = 2;
|
tabstop = 2;
|
||||||
};
|
};
|
||||||
previewer = {
|
previewer = {
|
||||||
|
|
@ -39,28 +70,53 @@ in
|
||||||
};
|
};
|
||||||
keybindings = { "<c-f>" = "$EDITOR $(fzf)"; };
|
keybindings = { "<c-f>" = "$EDITOR $(fzf)"; };
|
||||||
commands = {
|
commands = {
|
||||||
"z" = ''
|
mkdir = ''''${{
|
||||||
''${{
|
printf "Directory name: "
|
||||||
result="$(zoxide query --exclude "$PWD" -- "$@")"
|
read ans
|
||||||
lf -remote "send $id cd '$result'"
|
mkdir $ans
|
||||||
}}'';
|
}}'';
|
||||||
"zi" = ''
|
mkfile = ''''${{
|
||||||
''${{
|
printf "File name: "
|
||||||
result="$(zoxide query -i -- "$@")"
|
read ans
|
||||||
lf -remote "send $id cd '$result'"
|
$VISUAL $ans
|
||||||
}}'';
|
}}'';
|
||||||
"extract" = ''
|
|
||||||
''${{
|
trash = ''''${{
|
||||||
set -f
|
files=$(printf "$fx" | tr '\n' ';')
|
||||||
case $f in
|
while [ "$files" ]; do
|
||||||
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
file=''${files%%;*}
|
||||||
*.tar.gz|*.tgz) tar xzvf $f;;
|
|
||||||
*.tar.xz|*.txz) tar xJvf $f;;
|
${pkgs.trash-cli}/bin/trash-put "$(basename "$file")"
|
||||||
*.zip) unzip $f;;
|
if [ "$files" = "$file" ]; then
|
||||||
*.rar) unrar x $f;;
|
files=""
|
||||||
*.7z) 7z x $f;;
|
else
|
||||||
esac
|
files="''${files#*;}"
|
||||||
}}'';
|
fi
|
||||||
|
done
|
||||||
|
}}'';
|
||||||
|
restore_trash = ''''${{
|
||||||
|
trash-restore
|
||||||
|
}}'';
|
||||||
|
|
||||||
|
z = ''''${{
|
||||||
|
result="$(zoxide query --exclude "$PWD" -- "$@")"
|
||||||
|
lf -remote "send $id cd '$result'"
|
||||||
|
}}'';
|
||||||
|
zi = ''''${{
|
||||||
|
result="$(zoxide query -i -- "$@")"
|
||||||
|
lf -remote "send $id cd '$result'"
|
||||||
|
}}'';
|
||||||
|
extract = ''''${{
|
||||||
|
set -f
|
||||||
|
case $f in
|
||||||
|
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
||||||
|
*.tar.gz|*.tgz) tar xzvf $f;;
|
||||||
|
*.tar.xz|*.txz) tar xJvf $f;;
|
||||||
|
*.zip) unzip $f;;
|
||||||
|
*.rar) unrar x $f;;
|
||||||
|
*.7z) 7z x $f;;
|
||||||
|
esac
|
||||||
|
}}'';
|
||||||
"tar" = ''
|
"tar" = ''
|
||||||
''${{
|
''${{
|
||||||
set -f
|
set -f
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue