Tags: hpjansson/chafa
Tags
1.18.0 (2025-11-09)
This is a feature and bugfix release.
* Increased GLib minimum version to 2.58 (released in 2018).
* New options: --files=FNAME and --files0=FNAME. These allow reading lists of
input files from a file or standard input. Paths can be separated by newlines
or a zero byte (--files0). These options can be specified multiple times.
* New option: --link=[auto|on|off]. When used with --label, this controls
whether each label should be an OSC 8-style hyperlink to its input file.
* Multiple files can now be decoded in parallel. This greatly speeds up grid
mode on multi-core systems. Controllable with --threads.
* ConHost support was removed due to incompleteness and lack of interest.
* Image loaders:
- Added support for CoreGraphics loaders on MacOS (github#301, Hayaki Saito).
- Added support for HEIF files on all platforms (github#297).
* Terminal support:
- Improved detection of ghostty inside tmux (github#296, reported by
@timsofteng).
- Added support for GNU/Hurd console.
* Tests:
- Expanded symbol matching tests with more cases and detailed diagnostics.
- Added a test for CLI tool return values in various scenarios.
* Bug fixes:
github#293 Don't leave stdin in non-blocking mode (found by @YanceyChiew).
[unfiled] Use glibtoolize when libtoolize is unavailable (Hayaki Saito).
[unfiled] GNU/Hurd: Don't stall if pipe is closed on remote end.
[unfiled] _mm_empty() not always called immediately after MMX use.
[unfiled] FP division by zero possible in sixel palette generation.
[unfiled] Don't wait for response if probing is unsupported.
[unfiled] Wrong exit code returned on some failures.
1.16.2 (2025-07-04)
This is a bugfix release. It also improves I/O robustness and SVG rendering
quality.
* Bug fixes:
github#288 SVG scaling seems to be done after bitmap conversion (found by
@joveian).
[unfiled] MinGW: Undeclared function error for strlen() (Carlo Bramini).
[unfiled] Assert when using chafa_canvas_draw_all_pixels() with Kitty
passthrough (found by @ravachol).
[unfiled] Hangs when running with closed stdin (found by Xavier Moffett).
[unfiled] Potential overrun when output dimension is exactly 1 pixel.
[unfiled] Small memory leak on failed load in the grid layout.
[unfiled] Occasional warnings from JPEG loader that should not be printed.
1.16.0 (2025-05-18) 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 (github#174), and blue noise dithering was introduced (github#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 (github#266). * Added completions for the fish shell (Hoang Nguyen) and updated those for zsh (Sebastian Stark). * Bug fixes: github#111 Provide auto detection of background for perception of transparency (found by Akash Patel). github#228 Sixel capability not detected in foot + tmux (found by @amigthea). github#236 Ghostty shows pwd/lock indicator when using Chafa (found by Eduard Rozenberg). github#238 Sixel image quality significantly different from img2sixel and ImageMagick (found by Rashil Gandhi). github#239 Chafa leaves echo on (found by @veltza). github#245 JPEG file not recognized (found by Lionel Dricot). github#246 Examples using deprecated functions (found by @sechshelme). github#249 Sixel detection doesn't set default values (found by @veltza). github#254 -t 1 doesn't work with -f iterm (@AnonymouX47). github#255 Animations scroll/walk up the screen (found by @AnonymouX47). github#265 Enable Kitty image protocol for Warp (found by Soham Parmar). github#266 On Windows, in a cmd.exe window, filename wildcard expansion is broken (found by @garoto). github#273 -t 1 messes up some images (found by @AnonymouX47). github#274 -f {kitty,iterm} swaps BG color channels for SVG (found by @AnonymouX47). github#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.
1.14.5 (2024-11-03)
This release addresses a handful of medium-severity bugs.
* Bug fixes:
github#217 Improve sixel and general terminal support inside tmux (found
by Steven Walton).
github#221 Support JPEGs with CMYK color space (found by Lionel Dricot).
github#225 Fix --font-ratio doing nothing (found by @johnd0e).
[unfiled] Ensure CLI tool gets linked with libm.
1.14.4 (2024-09-10) This quick follow-up release corrects the incomplete fix for the CLI argument fraction parsing. It now accepts C locale formatting in addition to that of the current locale. * Bug fixes: github#216 Dither intensity does not work properly (found by @veltza).
1.14.3 (2024-09-09)
This release brings important fixes for sixel rendering and Windows Terminal,
plus a few other odds and ends.
* Sixel transparency has been reenabled for still frames. Animations will be
pre-composited on an opaque background to prevent flicker/glitchiness
(discussed in github#211, big thanks to James Holderness).
* Now supports the Ghostty terminal, defaulting to the Kitty graphics protocol
there.
* Bug fixes:
github#185 Chafa version 1.14 breaks image preview on lf (found by
@Steven79203).
github#210 Crash with -f sixels (found by Chris Antos).
github#211 Sixels are too small in Windows Terminal (found by @veltza).
github#212 Aspect-preserving calculations are off in some cases.
[unfiled] Inconsistent fraction parsing in CLI arguments.
[unfiled] A few small memory leaks in the JPEG XL loader.
1.14.2 (2024-07-26) This is a bugfix release. github#205 is particularly serious, since it affects many users on distributions that build with LTO enabled. * Bug fixes: github#203 Chafa 1.14.1 fails to build on i686 (reported by @tranzystorekk). github#205 Symbols mode not working since 1.14.1 (reported by Folke Lemaitre). github#206 Crash when importing more than 32767 glyphs (reported by @stgiga). [unfiled] Fix erroneous base64 encoding of final byte in some circumstances.
1.14.1 (2024-06-17) This release brings bug fixes, compatibility improvements and some performance enhancements. * A JPEG XL (.jxl) loader was added using libjxl (github#188, @oupson). * Added detection of the Eat "Emulate a Terminal" Emacs terminal (Simon Law). * Symbols mode was sped up significantly on AVX2-capable platforms. * Tests: A new test driver was added. It will log the specifics of any failures, which aids debugging of CI builds (issue found by Mo Zhou). * Bug fixes: github#189 Fix installation of zsh completions (Felix Yan). github#190 Fix a small memory leak in ChafaCanvas (found by @jstkdng). github#192 Wrong sixel padding in some circumstances (found by @dnkl). github#195 tmux passthrough enabled when already set (found by Ron Lau). github#196 iTerm mode not enabled automatically (found by @sudo-burger).
1.14.0 (2024-01-08) This is a feature release with mostly practical improvements and bug fixes. It also adds a modest amount of new API in preparation for things to come. * Removed ImageMagick loader support. Packagers can now remove this dependency (github#157). * Polite mode is now off by default. The new default eliminates cursor flicker and makes the output more robust against unusual terminal settings. The old behavior can be restored with "--polite on". * Added image loaders for the AVIF and QOI formats. Thanks to @jerch for suggesting the latter. * sRGB gamma is now handled correctly in scaling operations. * New option: --passthrough=<auto|none|screen|tmux>. This allows passing graphics protocols like Sixels, iTerm and Kitty through a terminal multiplexer. It will be enabled automatically for Kitty, and can be enabled manually for other protocols with more limited support (github#116, github#162, thanks to Samantha Collins and @m040601). * New option: --view-size=<WxH>. Specifies width and height of the viewport, overriding the detected terminal size (github#140, reported by Jamin Thornsberry). * New option: --fit-width. Fits images to the width of the viewport, allowing them to be taller than the viewport's height (github#115, thanks to @SuperDuperDeou). * New option: --relative=<bool>. Enables relative cursor positioning. Useful if you've pre-positioned the cursor at a particular offset where you want frames to appear, but tends to make the output illegible in pagers, e.g. 'less -R' (github#146, thanks to @Delgan and @AnonymouX47). * New option: --exact-size=<auto|on|off>. Preserves the input pixel size when possible. Useful to avoid artifacts caused by resampling (github#119, reported by @ErrorNoInternet). * New symbol selector: "imported". This selects glyphs loaded with --glyph-file (github#124, reported by @clort81). * MS Windows: Experimental support for ConHost output (-f conhost). This allows direct output on older versions of MS Windows (github#170, @oshaboy). * Fontgen: Added a BDF font writer (Mo Zhou). * Fontgen: Cleanup and modernization (Mo Zhou). * The help text and manual page were overhauled for readability, and the API documentation now includes symbol indexes by version and deprecation status. * Added a zsh completion script (Wu Zhenyu). * Installation methods added: Scoop (Launch Lee) and Winget (@sitiom). * CI: Ported to GitHub actions (Erica Ferrua Edwardsdóttir). * Bug fixes: github#107 "Unknown file format" when using AVIF on stdin (found by @ndren). github#152 Broken linking with libwebp-1.3.1 (found by Vladimír Čunát). [unfiled] Fix make check with --without-tools (Samuel Thibault). [unfiled] Fix --duration not working well with still images (@Delgan). [unfiled] Fix sixel rendering of animations (@Delgan). [unfiled] Fix operator precedence in geometry calculation (Johan Mattsson).
PreviousNext