4P by neo 3달전 | favorite | 댓글 1개

lsix: 터미널에서 이미지 썸네일을 보여주는 도구

사용법

  • lsix [파일들 ...] 명령어로 사용 가능함.
  • 기본적으로 현재 작업 디렉토리의 이미지를 보여줌.
  • 파일 이름을 지정하거나 와일드카드를 사용할 수 있음 (예: lsix *jpg*png).

예제

기본 사용법

  • lsix 명령어를 입력하면 현재 디렉토리의 이미지를 보여줌.
  • 특정 파일 형식을 강제로 표시하려면 파일 이름을 지정하거나 와일드카드를 사용함 (예: lsix *.pdf).

GIF 확장

  • GIF 파일을 지정하면 모든 프레임이 확장되어 몽타주로 표시됨 (예: lsix nyancat.gif).

터미널 배경색 감지

  • PNG 및 SVG 파일은 터미널 배경색에 맞게 알파 채널을 올바르게 표시함.
  • 터미널의 전경색과 배경색을 감지하여 적절히 조정함.

기능

  • 터미널이 SIXEL 그래픽을 표시할 수 있는지 감지함.
  • SSH를 통해 원격 서버에서도 잘 작동함.
  • 비트맵이 아닌 그래픽도 잘 작동함 (예: .svg, .eps, .pdf, .xcf).
  • 터미널의 색상 레지스터 수를 자동으로 감지하고 이미지 품질을 향상시킴.
  • 터미널의 전경색과 배경색을 자동으로 감지함.
  • 많은 이미지가 있는 경우 한 줄씩 표시하여 전체 몽타주를 기다릴 필요가 없음.
  • 긴 파일 이름을 적절히 감싸서 표시함.
  • 몽타주의 타일 너비, 폰트 패밀리, 포인트 크기 등을 쉽게 변경할 수 있음.

설치

  • lsix 파일을 경로에 넣고 실행함 (예: /usr/local/bin).
  • ImageMagick이 필요함. 패키지 관리자를 통해 쉽게 설치 가능 (예: apt-get install imagemagick).
  • MacOS 사용자는 brew install lsix 명령어로 설치 가능.

터미널 지원

  • SIXEL 그래픽을 지원하는 터미널: XTerm, MLterm, foot, Wezterm, Contour, iTerm2, Konsole, yakuake, WSLtty, MinTTY, Yaft, VTE, sixel-tmux, ttyd.
  • SIXEL 그래픽을 지원하지 않는 터미널: MacOS Terminal, kitty, 모든 표준 libvte 기반 터미널 (gnome-terminal, terminator, lxterm), Alacritty.

구성

  • lsix는 매우 간단하게 설계되어 별도의 구성 파일이나 명령줄 플래그가 없음.
  • 스크립트를 직접 편집하여 쉽게 변경 가능.

버그

  • XTerm의 역방향 비디오 모드에서 배경색이 올바르게 표시되지 않음.
  • XTerm의 화면 너비가 1000px로 제한됨.
  • 파일 이름이 "@"로 시작하면 ImageMagick이 오류를 일으킴.
  • 빈 문자열을 파일 이름으로 지정하면 ImageMagick이 멈춤.
  • 긴 파일 이름이 비효율적으로 감싸짐.
  • 명령줄에서 지정된 디렉토리가 재귀적으로 처리되지 않음.
  • 비디오 파일을 지정하면 문제가 발생할 수 있음.

향후 문제

  • SIXEL 표준은 그래픽 화면의 크기를 쿼리하는 방법이 없음.
  • 색상 레지스터 수를 쿼리하는 방법이 없음.
  • 일부 터미널 에뮬레이터는 lsix와 호환되지 않음.

GN⁺의 의견

  • 터미널 이미지 보기: lsix는 터미널에서 이미지를 쉽게 볼 수 있게 해주는 유용한 도구임. 특히 원격 서버에서 이미지를 확인할 때 유용함.
  • 호환성 문제: 모든 터미널이 SIXEL 그래픽을 지원하지 않으므로 사용 전에 호환성을 확인해야 함.
  • 간단한 설치: 설치가 매우 간단하고 필요한 소프트웨어도 쉽게 구할 수 있음.
  • 사용자 정의 가능성: 스크립트가 간단하여 사용자가 쉽게 수정하고 확장할 수 있음.
  • 대체 도구: 비슷한 기능을 제공하는 다른 도구로는 img2sixel 등이 있음.
Hacker News 의견
  • Tmux의 실험적인 sixel 브랜치가 약 10개월 전에 메인 브랜치에 병합되었음. 이제 --enable-sixel 옵션을 사용하여 Tmux를 빌드하고 lsix 같은 도구를 사용할 수 있음. 좋아하는 터미널이나 멀티플렉서가 sixel을 지원하는지 확인하려면 "Are We Sixel Yet" 사이트를 참조할 수 있음.
  • 이 저장소에서 가장 마음에 드는 기능은 README.md.d 디렉토리임. 좋은 아이디어라고 생각함. .md를 생략해도 괜찮을 것 같음.
  • \e[c를 사용하여 자동으로 sixel 지원을 감지함. \e[c는 "장치 속성 보내기" 기능임.
  • 비슷한 맥락에서 timg라는 도구도 있음.
  • 좋은 아이디어지만 PuTTY/ KiTTY에서는 작동하지 않음. sixel 그래픽을 지원하는 터미널을 사용해야 함. 터미널이 sixel을 지원하는지 테스트하려면 이미지를 변환하여 확인할 수 있음. 지원하지 않는다면 버그 리포트를 제출할 수 있음.
  • MacOS의 iTerm2는 유사한 기능을 제공하지만 서버 측 부담이 적음. 서버에서 이미지를 sixel로 렌더링하는 대신, 클라이언트로 base64 인코딩된 이미지를 보내어 로컬에서 렌더링함.
  • fzf는 버전 0.44.0부터 미리보기 창에서 (실험적인) sixel 이미지 지원을 제공함. 하지만 Windows에서는 사용할 수 없음.
  • HN 폰트가 오해를 불러일으킬 수 있음. 다음 헤드라인을 기다리고 있음: 'Isis, like "ls", but for terrorists.'
  • 신뢰할 수 없는 디렉토리에서 이 도구를 실행할 때 주의해야 함. 특히 pdf와 같은 파일을 처리할 때 ImageMagick을 사용하는 경우 주의가 필요함.
  • 터미널이 sixel 그래픽을 지원하는 한 문제없음.