From 83d5ba42f8a98fc0df177efef4333f74a0481f61 Mon Sep 17 00:00:00 2001 From: pants Date: Mon, 21 Sep 2026 14:18:06 -0700 Subject: init --- scripts/fifo/fzf-fifo | 45 +++++++++++++++++++++++++++++++++++++++++++++ scripts/fifo/img-fifo | 31 +++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100755 scripts/fifo/fzf-fifo create mode 100755 scripts/fifo/img-fifo (limited to 'scripts/fifo') diff --git a/scripts/fifo/fzf-fifo b/scripts/fifo/fzf-fifo new file mode 100755 index 0000000..a9d5d20 --- /dev/null +++ b/scripts/fifo/fzf-fifo @@ -0,0 +1,45 @@ +#!/bin/sh + +# This is a simple script that allows you to have image preview +# in fzf, using ueberzugpp with fifo. For this script to work +# you must add it to path, because it requires to call itself +# during the preview process in fzf (line 42 -> $0). +# Example usage: +# ls | fzf-fifo +# find $HOME/pix/ -type f -iname "*.jpg" | fzf-fifo + +FIFO="/tmp/fzf_preview_fifo" +[ -p "$FIFO" ] || mkfifo "$FIFO" + +start_ueberzugpp() { + ueberzugpp layer --silent <"$FIFO" & + exec 3>"${FIFO}" +} + +cleanup() { + exec 3>&- +} +trap cleanup HUP INT QUIT TERM EXIT + +preview_image() { + echo '{"path": "'"$1"'", "action": "add", ''"identifier": "fzfpreview", '\ + '"x": "'"$FZF_PREVIEW_LEFT"'", "y": "'"$FZF_PREVIEW_TOP"'", '\ + '"width": "'"$FZF_PREVIEW_COLUMNS"'", "height": "'"$FZF_PREVIEW_LINES"'"}' \ + >"$FIFO" +} + +case "$1" in + -W) + shift + preview_image "$@" + exit + ;; +esac + +main() { + start_ueberzugpp + selected_image=$(fzf --preview "$0 -W {}" --preview-window=up:60%:wrap) + [ -n "$selected_image" ] && echo "Selected image: $selected_image" + rm "$FIFO" +} +main diff --git a/scripts/fifo/img-fifo b/scripts/fifo/img-fifo new file mode 100755 index 0000000..78aeb9d --- /dev/null +++ b/scripts/fifo/img-fifo @@ -0,0 +1,31 @@ +#!/bin/sh + +# This is a simple script that allows you to use ueberzugpp to +# preview images in the terminal by providing the x and y +# coordinates of the image, the width and height of the image, +# and the path to the image file, with $1, $2, $3, $4 and $5 +# as arguments, respectively. +# Example usage: +# ./img-fifo 0 0 30 30 image.jpg +# Use Ctrl+C to exit. + +FIFO="/tmp/preview_fifo" +[ -p "$FIFO" ] || mkfifo "$FIFO" + +start_ueberzugpp() { + ueberzugpp layer --silent <"$FIFO" & + exec 3>"${FIFO}" +} + +cleanup() { + rm -f "$FIFO" +} +trap cleanup HUP INT QUIT TERM EXIT + +preview_image() { + echo '{"path": "'"$5"'", "action": "add", "identifier": "img-fifo", "x": "'"$1"'", "y": "'"$2"'", "width": "'"$3"'", "height": "'"$4"'"}' >"$FIFO" +} + +start_ueberzugpp +preview_image "$1" "$2" "$3" "$4" "$5" +wait -- cgit v1.2.3