Releases: hpjansson/chafa
Chafa 1.18.1
This is a bugfix and quality-of-life release.
-
New option:
--probe-mode=[any|ctty|stdio]. This specifies whether to probe the terminal through stdio or ctty (usually/dev/tty). Defaults toany, which will probe stdio if it looks like a tty, otherwise the ctty. This allows the terminal to be probed when I/O is redirected (#325, reported by @algometric). -
We now try harder to restore the terminal to a usable state after
SIGINTis received, even if we couldn't do a clean exit in a reasonable time frame (#309, reported by @saitoha). -
Bash completions were added and zsh completions updated (#315, @desertstsung).
-
Improved compatibility for the Kitty protocol, specifically with iTerm2 (@zouyonghe).
-
Bug fixes:
#184 Test failure on sparc64 (reported by @cdluminate).
#292 Test failure on i386 (reported by @cdluminate).
#321 Bad console modes on win32 after exit (reported by @juliannoble).
[unfiled] Stalling on closed output pipe on OpenBSD.
Chafa 1.18.0
This is a feature and bugfix release.
-
Increased GLib minimum version to 2.58 (released in 2018).
-
New options:
--files=FNAMEand--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 anOSC 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:
-
Terminal support:
- Improved detection of ghostty inside tmux (#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:
#293 Don't leave stdin in non-blocking mode (found by @YanceyChiew).
[unfiled] Use glibtoolize when libtoolize is unavailable (@saitoha).
[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.
Chafa 1.16.2
This is a bugfix release. It also improves I/O robustness and SVG rendering quality.
- Bug fixes:
#288 SVG scaling seems to be done after bitmap conversion (found by @joveian).
[unfiled] MinGW: Undeclared function error forstrlen()(@carlo-bramini).
[unfiled] Assert when usingchafa_canvas_draw_all_pixels()with Kitty passthrough (found by @ravachol).
[unfiled] Hangs when running with closed stdin (found by @SapphirusBeryl).
[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.
Chafa 1.16.1
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.
Chafa 1.14.5
This release addresses a handful of medium-severity bugs.
Chafa 1.14.4
Chafa 1.14.3
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 #211, big thanks to @j4james).
-
Now supports the Ghostty terminal, defaulting to the Kitty graphics protocol there.
-
Bug fixes:
#185 Chafa version 1.14 breaks image preview on lf (found by @Steven79203).
#210 Crash with -f sixels (found by @chrisant996).
#211 Sixels are too small in Windows Terminal (found by @veltza).
#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.
Chafa 1.14.2
This is a bugfix release. #205 is particularly serious, since it affects many users on distributions that build with LTO enabled.
Chafa 1.14.1
This release brings bug fixes, compatibility improvements and some performance enhancements.
-
A JPEG XL (.jxl) loader was added using libjxl (#188, @oupson).
-
Added detection of the Eat "Emulate a Terminal" Emacs terminal (@sfllaw).
-
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 @cdluminate).
-
Bug fixes:
#189 Fix installation of zsh completions (@felixonmars).
#190 Fix a small memory leak in ChafaCanvas (found by @jstkdng).
#192 Wrong sixel padding in some circumstances (found by @dnkl).
#195 tmux passthrough enabled when already set (found by @ronyclau).
#196 iTerm mode not enabled automatically (found by @sudo-burger).