lf에서 Kitty와 Tmux를 사용하여 이미지 표시

발행: (2026년 1월 4일 오전 12:45 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Overview

lf(터미널 파일 관리자)를 KittyTmux와 함께 사용할 때, 이미지 미리보기를 전환할 때 화면에 그래픽 아티팩트가 남아 인터페이스가 읽기 어려워지는 문제가 발생합니다.

해결 방법은 세 가지 요소에 의존합니다:

  1. lfredraw 명령
  2. 외부 클리너 스크립트 없이
  3. lfon-select 이벤트

핵심 아이디어는 파일을 선택할 때마다 lf에게 자체를 다시 그리도록 요청함으로써 터미널을 깨끗이 지우고 미리보기가 정상적으로 표시되게 하는 것입니다.

Configuration (lfrc)

~/.config/lf/lfrc(또는 해당 lfrc 위치)에 다음을 추가합니다:

set previewer ~/.local/bin/lfpreview

cmd on-select &{{
  exec lf -remote 'send redraw'
}}
  • set previewerlf에게 미리보기 스크립트를 지정합니다.
  • on-select 명령은 파일이 선택될 때마다 원격 redraw 요청을 트리거합니다.

Preview Script (lfpreview)

다음 내용을 가지고 ~/.local/bin/lfpreview 파일을 만들고 실행 권한을 부여합니다:

#!/bin/sh
draw() {
  kitten icat --stdin no --transfer-mode memory \
    --place "${w}x${h}@${x}x${y}" "$1" /dev/tty
}

file="$1"
w="$2"
h="$3"
x="$4"
y="$5"

case "$(file -Lb --mime-type "$file")" in
  image/*)
    draw "$file"
    ;;
  application/pdf)
    pdftoppm -f 1 -singlefile "$file" "/tmp/lfoutput"
    draw "/tmp/lfoutput.ppm"
    ;;
  *)
    less "$1"
    ;;
esac

exit 1   # do not cache
chmod +x ~/.local/bin/lfpreview

How it works

  • Images – Kitty의 icat을 사용해 바로 표시합니다.
  • PDFspdftoppm으로 첫 페이지를 이미지로 변환한 뒤 표시합니다.
  • Other filesless로 엽니다.

스크립트 마지막의 exit 1lf에게 미리보기를 캐시하지 말라는 신호입니다. 이를 생략하면 새로 고침 메커니즘이 캐시된 미리보기를 재사용하게 되어 파일을 선택할 때마다 이미지가 다시 그려지지 않습니다.

Adjustments

이 설정은 일반적인 사용 사례에 맞게 동작하지만, 다음과 같은 부분을 조정해야 할 수도 있습니다:

  • 시스템에 따라 kitten icat이나 pdftoppm의 경로가 다를 경우 경로를 수정합니다.
  • case 문에 추가 MIME 타입을 넣어 다른 파일 형식을 처리합니다.

필요에 따라 스크립트를 확장하여 자신의 워크플로에 맞게 활용하세요.

Back to Blog

관련 글

더 보기 »

Unix v4 (1973) – 실시간 터미널

죄송하지만, 제공해 주신 URL의 내용을 직접 확인할 수 없습니다. 번역을 원하시는 텍스트를 여기 채팅에 붙여 주시면 한국어로 번역해 드리겠습니다.