Skip to content

Tags: hpjansson/chafa

Tags

1.18.0

Toggle 1.18.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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

Toggle 1.16.2's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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.1

Toggle 1.16.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
1.16.1 (2025-05-21)

This release fixes two important bugs.

* Bug fixes:
  github#282  Fish completion not included in release tarball (found by
              @knuxify).
  github#283  Piping and redirection are broken in Windows (found by @veltza).

1.16.0

Toggle 1.16.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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

Toggle 1.14.5's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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

Toggle 1.14.4's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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

Toggle 1.14.3's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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

Toggle 1.14.2's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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

Toggle 1.14.1's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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

Toggle 1.14.0's commit message

Verified

This tag was signed with the committer’s verified signature. The key has expired.
hpjansson Hans Petter Jansson
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).