Skip to content

Chafa 1.8.0

Compare
Choose a tag to compare
@hpjansson hpjansson released this 31 Aug 21:59
· 592 commits to master since this release
1.8.0

This is a major feature release.

  • Added basic support for the Kitty and iTerm2 graphics protocols. These are enabled automatically when corresponding terminal support is detected, or manually with -f kitty or -f iterm.

  • Implemented an 8-color mode, selectable with -c 8 (@hodefoting).

  • Implemented a foreground-only switch, --fg-only. This produces character art using foreground colors only, and will avoid modifying or resetting the background color. Looks best with non-contiguous symbols (e.g. ascii).

  • Added builtins for Japanese kana fullwidth symbols. These can now be used without loading any external fonts (try -c none --symbols wide).

  • Added builtins for legacy computer symbols (mainly wedges and sextant blocks). These were widely used in PETSCII and Teletext, and can be enabled using --symbols or --fill with their respective tags: legacy, wedge and sextant (@hodefoting).

  • Since there is a growing number of builtin symbols that may not be available everywhere, the default selection has been restricted to the widely supported block and border sets.

  • If possible, we now select a visually blank character from the specified symbol/fill sets instead of hardcoding ASCII space for featureless cells. One practical upshot of this is that the constant-width braille range can be used to produce consistent images even in contexts with variable-width fonts. U+2800 (BRAILLE PATTERN BLANK) will then be used in blank cells.

  • Improved terminal size detection when used with pipelines and redirection. This should now produce an image properly sized for your terminal: curl https://i.imgur.com/WFDEFVg.jpeg | chafa - | tee out

  • ChafaCanvas gained API functions for programmatically getting and setting character cell contents. These are used in a new example in tests/ncurses.c demonstrating ncurses integration.

  • Made --disable-rpath the default in order to simplify packaging.

  • Added a HACKING file featuring a much needed release checklist.

  • Improved terminal support:

    • Ctx will now use optimizing REP sequences at high -O levels.
    • foot now defaults to sixels (@dnkl).
    • iTerm2 now defaults to the iTerm2 protocol.
    • Kitty now defaults to the Kitty protocol.
    • st now defaults to truecolor symbols (@rojnwa).
  • Bug fixes:

    • #44 Missing error handling on stdout writes (reported by @elfring).
    • [unfiled] Solid symbols erroneously replaced by fill in FGBG mode.
    • [unfiled] Integer formatter was not using fast path for 8-bit values.