Chafa 1.16.0
This is a feature release with lots of additional polish and some new API.
Thanks to everyone who chipped in with issues and code. Special thanks to @AnonymouX47 for helping out with the grid implementation and for going above and beyond with QA and bugfixing in general.
-
Added terminal probing. Currently we can determine geometry, colors and sixel capabilities this way. This supplements the existing heuristics.
-
The internal terminal database and heuristics were refactored for clarity, with new API added to simplify the configuration process.
-
I/O is now threaded, resulting in improved responsiveness and pipelining.
-
New option:
--grid=WxH,--grid=[auto|on|off]or-g. This lays out multiple images in a grid for easy browsing. -
New option:
--label=[on|off]or-l. Labels each image with its filename. Works in both continuous and grid layouts. -
New option:
--probe=[auto|on|off]. Controls whether to actively probe the terminal. Can take a real number denoting how long to wait for a response. -
Sixel quality improved significantly. The quantizer was reimplemented with modern algorithms (#174), and blue noise dithering was introduced (#238).
-
The new blue noise dithering is also available in symbols mode, and can be turned on with
--dither noise. It can be turned off with--dither none. -
Numerous small improvements were made to sixel handling:
- Terminal cursor placement quirks are now represented and handled.
- Images can now cover their cell extents completely.
- Workaround for animations "walking up the screen" on quirky terminals.
-
The JPEG XL loader was improved with optional memory mapping and better container support (@oupson).
-
Enabled wildcard expansion in Windows builds (#266).
-
Added completions for the fish shell (@folliehiyuki) and updated those for zsh (@sstark).
-
Bug fixes: #111 Provide auto detection of background for perception of transparency (found by @acxz). #228 Sixel capability not detected in foot + tmux (found by @amigthea). #236 Ghostty shows pwd/lock indicator when using Chafa (found by @edrozenberg). #238 Sixel image quality significantly different from img2sixel and ImageMagick (found by @rashil2000). #239 Chafa leaves echo on (found by @veltza). #245 JPEG file not recognized (found by @ploum). #246 Examples using deprecated functions (found by @sechshelme). #249 Sixel detection doesn't set default values (found by @veltza). #254 -t 1 doesn't work with -f iterm (@AnonymouX47). #255 Animations scroll/walk up the screen (found by @AnonymouX47). #265 Enable Kitty image protocol for Warp (found by @SohamP2812). #266 On Windows, in a cmd.exe window, filename wildcard expansion is broken (found by @garoto). #273 -t 1 messes up some images (found by @AnonymouX47). #274 -f {kitty,iterm} swaps BG color channels for SVG (found by @AnonymouX47). #278 Images not always padded to cell boundary (found by @veltza). [unfiled] Fix broken bashisms resulting in logic failure (@eli-schwartz). [unfiled] Small leak in chafa_canvas_print_rows() (@korei999). [unfiled] Uninitialized histogram in nearest-neighbor interp.