- Update to 0.10.0:
* New option: --animate <bool>. On by default. Can be turned off
to replace animations with a still frame #79.
* New option: --center <bool> or -C <bool>. Off by default. Can
be turned on to center images #83.
* New options: --margin-bottom <n> and --margin-right <n>. These
permit using all available space (with --margin-bottom 0) or some
smaller amount #61.
* New option: --polite <bool>. On by default. Can be turned off to
correct issues caused by previous terminal state (e.g. no sixel scrolling)
and improve presentation (e.g. by temporarily hiding the cursor). This can
leave the terminal in an altered state, which is somewhat rude.
* New option: --threads <n>. Allows manually specifying the number of threads to
use. Defaults to one per detected logical CPU core.
* When invoked with redirected input and no arguments, act like a
filter as if invoked with -.
* If input or output is being redirected, default to playing animations only once
instead of looping forever. This can be overridden with -d inf.
* Replaced obsolete Autoconf macros.
* Improved image loaders:
+ GIF: Load GIF87a images as well as GIF89a.
+ PNG: Add an internal copy of LodePNG, bypassing ImageMagick.
This improves performance and helps with eventually phasing out the latter.
+ XWD: Support images generated by convert.
* Improved terminal support:
+ Contour: Enable sixel support.
+ foot: Open-ended TERM string matching.
+ Konsole: Enable sixel support.
+ WezTerm: Enable sixel support.
* Bug fixes:
OBS-URL: https://build.opensuse.org/request/show/963661
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/chafa?expand=0&rev=10
- Update to 1.8.0:
* 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
* 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.
OBS-URL: https://build.opensuse.org/request/show/915447
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/chafa?expand=0&rev=9
* 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
* 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.
OBS-URL: https://build.opensuse.org/package/show/graphics/chafa?expand=0&rev=19
- Update to 1.6.1:
* Add NOCONFIGURE variable to autogen.sh to skip configure
Bug fixes:
* #50 SIGBUS while loading huge GIFs
* #52 Produces small glitches in output with some images
* #54 Haiku port fails on 32bit
* [unfiled] Exclude RTL code points that could break the output.
* [unfiled] Apple Terminal lacks truecolor support, so make it
default to 256 colors
* [unfiled] Fix typo affecting middle dot symbol.
OBS-URL: https://build.opensuse.org/request/show/898181
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/chafa?expand=0&rev=8
* Add NOCONFIGURE variable to autogen.sh to skip configure
Bug fixes:
* #50 SIGBUS while loading huge GIFs
* #52 Produces small glitches in output with some images
* #54 Haiku port fails on 32bit
* [unfiled] Exclude RTL code points that could break the output.
* [unfiled] Apple Terminal lacks truecolor support, so make it
default to 256 colors
* [unfiled] Fix typo affecting middle dot symbol.
OBS-URL: https://build.opensuse.org/package/show/graphics/chafa?expand=0&rev=16
- Update to 1.6.0:
* Added support for fullwidth symbols that take up two character
cells. These are common in East Asian scripts. Single-cell and
double-cell symbols can be mixed, and -f symbols mode will use
both if possible.
* New symbol tags: alpha, digit, alnum, narrow, wide, ambiguous,
ugly, bad. "Ambiguous" symbols have uncertain widths and may
render poorly in some terminals. "Ugly" denotes symbols that
are unsuitable for Chafa's cell-based graphics (multicolor
emoji, ideographic descriptors, etc). "Bad" is a superset of
these two categories. Bad symbols are always excluded unless
explicitly enabled with e.g. CHAFA_SYMBOL_TAG_BAD (--symbols
+bad in the frontend).
* The font loader (--glyph-file option) now does a better job
with proportional fonts.
* Added options for controlling lossless optimization of output.
Currently, attribute reuse and character repetition (REP
sequence) are implemented.
* Added -O option to the frontend. This controls the optimization
level.
* Added a simple abstraction layer for terminal control sequences
(ChafaTermInfo and ChafaTermDb). This allows for improved
terminal support.
* FbTerm is now supported with TERM=fbterm in the environment.
* Bug fixes:
- #43 Fix signal handler.
- [unfiled] Crash when invalid font paths were passed on command line.
- [unfiled] Small typo in fontgen's READM).
- [unfiled] Bad contrast adjustment in images with transparency.
OBS-URL: https://build.opensuse.org/request/show/863252
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/chafa?expand=0&rev=7
* Added support for fullwidth symbols that take up two character
cells. These are common in East Asian scripts. Single-cell and
double-cell symbols can be mixed, and -f symbols mode will use
both if possible.
* New symbol tags: alpha, digit, alnum, narrow, wide, ambiguous,
ugly, bad. "Ambiguous" symbols have uncertain widths and may
render poorly in some terminals. "Ugly" denotes symbols that
are unsuitable for Chafa's cell-based graphics (multicolor
emoji, ideographic descriptors, etc). "Bad" is a superset of
these two categories. Bad symbols are always excluded unless
explicitly enabled with e.g. CHAFA_SYMBOL_TAG_BAD (--symbols
+bad in the frontend).
* The font loader (--glyph-file option) now does a better job
with proportional fonts.
* Added options for controlling lossless optimization of output.
Currently, attribute reuse and character repetition (REP
sequence) are implemented.
* Added -O option to the frontend. This controls the optimization
level.
* Added a simple abstraction layer for terminal control sequences
(ChafaTermInfo and ChafaTermDb). This allows for improved
terminal support.
* FbTerm is now supported with TERM=fbterm in the environment.
* Bug fixes:
- #43 Fix signal handler.
- [unfiled] Crash when invalid font paths were passed on command line.
- [unfiled] Small typo in fontgen's READM).
- [unfiled] Bad contrast adjustment in images with transparency.
OBS-URL: https://build.opensuse.org/package/show/graphics/chafa?expand=0&rev=14
- Update to 1.4.1:
* Added configure option --disable-rpath. This allows packagers to
prevent the hard-coded library search path from being embedded in
the chafa command-line tool (Mo Zhou, #39).
* Added defaults for the yaft terminal.
Bug fixes:
* #40 - Fails to build on hurd-i386 + other i386 (reported by Mo
Zhou).
* [unfiled] - Rare failed assert with mostly transparent sixel image
(reported by Reddit user spryfigure).
* [unfiled] - Minor typo in function docstring.
OBS-URL: https://build.opensuse.org/request/show/793444
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/chafa?expand=0&rev=6
* Added configure option --disable-rpath. This allows packagers to
prevent the hard-coded library search path from being embedded in
the chafa command-line tool (Mo Zhou, #39).
* Added defaults for the yaft terminal.
Bug fixes:
* #40 - Fails to build on hurd-i386 + other i386 (reported by Mo
Zhou).
* [unfiled] - Rare failed assert with mostly transparent sixel image
(reported by Reddit user spryfigure).
* [unfiled] - Minor typo in function docstring.
OBS-URL: https://build.opensuse.org/package/show/graphics/chafa?expand=0&rev=12
- Update to 1.4.0:
* Added sixel graphics support. Chafa will automatically produce sixels
if the connected terminal supports it. It can also be forced using the
new -f or --format flag. This is a new implementation written from the
ground up to maximize throughput.
* Added the --glyph-file option, which loads glyph-symbol mappings from
any file format supported by FreeType (TTF, PCF, etc). This allows for
custom font support and improved symbol selection.
* Added the --speed option specifying animation speed. It accepts a
unitless multiplier, a specific number of frames per second, or max
for maximum throughput.
* There are now two ways to assign colors to symbol cells. Formerly,
this was done based on the average color of the covered area. The new
default is to use the median color, which produces sharper edges,
but is slightly more prone to high-frequency noise. The new option
--color-extractor selects the method to employ.
* When displaying multiple files, the default delay between files has
been changed from three seconds to zero. Animations will still play
through once. This can be overridden on the chafa command line with -d
or --duration.
* Minor tweaks to built-in symbols.
Performance improvements:
* Halved pixel storage requirements from 64 bits to 32 bits,
resulting in significant memory savings.
* Now builds with -ffast-math, yielding a big speedup for DIN99d.
OBS-URL: https://build.opensuse.org/request/show/790804
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/chafa?expand=0&rev=5
* Added sixel graphics support. Chafa will automatically produce sixels
if the connected terminal supports it. It can also be forced using the
new -f or --format flag. This is a new implementation written from the
ground up to maximize throughput.
* Added the --glyph-file option, which loads glyph-symbol mappings from
any file format supported by FreeType (TTF, PCF, etc). This allows for
custom font support and improved symbol selection.
* Added the --speed option specifying animation speed. It accepts a
unitless multiplier, a specific number of frames per second, or max
for maximum throughput.
* There are now two ways to assign colors to symbol cells. Formerly,
this was done based on the average color of the covered area. The new
default is to use the median color, which produces sharper edges,
but is slightly more prone to high-frequency noise. The new option
--color-extractor selects the method to employ.
* When displaying multiple files, the default delay between files has
been changed from three seconds to zero. Animations will still play
through once. This can be overridden on the chafa command line with -d
or --duration.
* Minor tweaks to built-in symbols.
Performance improvements:
* Halved pixel storage requirements from 64 bits to 32 bits,
resulting in significant memory savings.
* Now builds with -ffast-math, yielding a big speedup for DIN99d.
OBS-URL: https://build.opensuse.org/package/show/graphics/chafa?expand=0&rev=10
* Detect kitty and mlterm virtual terminals and apply optimal
defaults accordingly
* Make Automake build more strict and fix a few compatibility nits
* Fix#30 - Failed to build on hurd-i386
* Fix crash on certain broken GIFs
OBS-URL: https://build.opensuse.org/package/show/graphics/chafa?expand=0&rev=4
* Added --dither, --dither-grain and --dither-intensity options.
These allow for sub-cell dithering in quantized modes (none,
2, 16, 240 and 256). Especially beneficial when used with
-p off.
* Added API for ordered and diffusion-based dithering in quantization.
* Added API support for multiple 8bpc pixel modes: RGB, BGR, RGBA,
BGRA, ARGB, ABGR with either premultiplied or unassociated alpha channels.
* Smooth scaling is now done internally, meaning libchafa
consumers no longer need to prescale images.
* Implemented a machine learning tool that can generate custom
fonts for efficient image reproduction from a provided dataset.
This is left uninstalled since it's still experimental
* Throughput improvements:
+ GIF animations now start playing instantly.
+ GIF CPU overhead reduced by 75%, peak memory use down 95%-99% (!).
+ XWD common case CPU overhead down 60-70%, peak memory down 70%.
+ Additional halving of CPU overhead in 240- and 256-color modes.
+ Streamlined pixel pipeline for better parallelization.
* Installation instructions:
+ New: Guix (Guy Fleury Iteriteka).
+ New: openSUSE (@jubalh).
* Bug fixes:
+ [unfiled] Certain SVGs had transparency replaced with a white background (nemo).
+ [unfiled] -lm dependency belongs in libchafa, not frontend.
OBS-URL: https://build.opensuse.org/package/show/graphics/chafa?expand=0&rev=2