Fix: kitty method issues

This commit is contained in:
Nikita Ivanov 2022-07-17 14:00:59 +05:00
parent 0167e65466
commit 4e05a7619a
No known key found for this signature in database
GPG Key ID: 6E656AC5B97B5133
3 changed files with 24 additions and 3 deletions

View File

@ -3,4 +3,4 @@ setup_image 1
[ "$image_method" = "$image_method_ueberzug" ] && [ "$image_method" = "$image_method_ueberzug" ] &&
printf '{"action": "remove", "identifier": "preview"}\n' > "$fifo" printf '{"action": "remove", "identifier": "preview"}\n' > "$fifo"
is_kitty && kitty +kitten icat --clear --transfer-mode file is_kitty && kitty_clear

View File

@ -1,4 +1,15 @@
setup_image 1 setup_image 1
# tell ctpv server to exit # tell ctpv server to exit
[ "$image_method" = "$image_method_ueberzug" ] && printf '\0' > "$fifo" printf '\0' > "$fifo"
# Kill running icat
icat_pid="$(kitty_icat_pid)"
[ -e "$icat_pid" ] && pid="$(cat "$icat_pid")" && [ -e "/proc/$pid" ] && kill "$pid"
# A dirty hack to fix lf issue where ctpv runs before quit
if is_kitty; then
kitty_clear &
{ sleep 1; kitty_clear; } &
wait
fi

View File

@ -22,6 +22,10 @@ is_kitty() {
[ -n "$KITTY_PID" ] [ -n "$KITTY_PID" ]
} }
kitty_clear() {
kitty +kitten icat --clear --transfer-mode file
}
fifo_open() { fifo_open() {
# https://unix.stackexchange.com/a/522940/183147 # https://unix.stackexchange.com/a/522940/183147
dd oflag=nonblock conv=notrunc,nocreat count=0 of="$1" \ dd oflag=nonblock conv=notrunc,nocreat count=0 of="$1" \
@ -75,6 +79,10 @@ setup_image() {
[ "$image_method" = "$image_method_ueberzug" ] && setup_fifo "$@" [ "$image_method" = "$image_method_ueberzug" ] && setup_fifo "$@"
} }
kitty_icat_pid() {
printf '/tmp/ctpvicat.%d' "$id"
}
send_image() { send_image() {
noimages && return 127 noimages && return 127
@ -86,7 +94,9 @@ send_image() {
;; ;;
"$image_method_kitty") "$image_method_kitty")
kitty +kitten icat --transfer-mode file --align left \ kitty +kitten icat --transfer-mode file --align left \
--place "${w}x${h}@${x}x${y}" "$1" --place "${w}x${h}@${x}x${y}" "$1" &
printf '%d\n' "$!" > "$(kitty_icat_pid)"
wait
return 1 return 1
;; ;;
"$image_method_chafa") "$image_method_chafa")