junegunn / fzf

:cherry_blossom: A command-line fuzzy finder
https://junegunn.github.io/fzf/
MIT License
62.28k stars 2.35k forks source link

fzf image preview window is empty when using Wezterm + bash + chafa on Windows #3682

Open ykhan21 opened 4 months ago

ykhan21 commented 4 months ago

Info

Problem / Steps to reproduce

  1. Install scoop.
  2. scoop install git wezterm fzf chafa
  3. Set the following in the ~/.wezterm.lua config file to have bash as the default shell in Wezterm: config.default_prog = { 'c:/users/USERNAME/scoop/apps/git/current/bin/bash.exe -i -l' }.
  4. Start Wezterm. Observe that chafa -f iterm -s 50x50 image.jpg works correctly.
  5. Run ls image.jpg | fzf --preview 'chafa -s 50x50 {}'. This results in an empty preview window.

The image used for testing is: image.jpg.

I don't know if this is related to this. chafa was recommended over wezterm imgcat this the issue, but I don't know if Wezterm interprets chafa -f iterm as wezterm imgcat.

junegunn commented 4 months ago

Unfortunately, image support is currently not available on Windows.

Adding image support on Windows wasn't as trivial as I initially thought. Since I'm not a Windows user and have limited knowledge of the platform, I wasn't able to do it.

ykhan21 commented 4 months ago

I have limited knowledge of this myself, but it could be that Windows ConPTY might be interfering with the image previews, according to my understanding of this issue (https://github.com/mintty/mintty/issues/1252). The program that create to output sixel graphics need to be compiled with cygwin to avoid ConPTY and other Windows APIs.

For what it's worth, on Windows, the mintty terminal (which is the Git Bash terminal on Windows) supports sixel and iterm graphics (https://mintty.github.io/) and Wezterm supports iterm graphics via the wezterm imgcat command.

Another relevant issue: https://github.com/wez/wezterm/issues/1236.

ykhan21 commented 4 months ago

Also, it seems that the symbols format works when previewing with chafa, but the output image is not pretty. ls image.jpg | fzf --preview 'chafa -s 50x50 -f symbols {}'