1Chafa releases 2============== 3 41.8.0 (2021-08-31) 5------------------ 6 7This is a major feature release. 8 9* Added basic support for the Kitty and iTerm2 graphics protocols. These are 10 enabled automatically when corresponding terminal support is detected, or 11 manually with '-f kitty' or '-f iterm'. 12 13* Implemented an 8-color mode, selectable with '-c 8' (Øyvind Kolås). 14 15* Implemented a foreground-only switch, '--fg-only'. This produces character 16 art using foreground colors only, and will avoid modifying or resetting 17 the background color. Looks best with non-contiguous symbols (e.g. ascii). 18 19* Added builtins for Japanese kana fullwidth symbols. These can now be used 20 without loading any external fonts (try '-c none --symbols wide'). 21 22* Added builtins for legacy computer symbols (mainly wedges and sextant 23 blocks). These were widely used in PETSCII and Teletext, and can be enabled 24 using --symbols or --fill with their respective tags: legacy, wedge and 25 sextant (Øyvind Kolås). 26 27* Since there is a growing number of builtin symbols that may not be available 28 everywhere, the default selection has been restricted to the widely supported 29 block and border sets. 30 31* If possible, we now select a visually blank character from the specified 32 symbol/fill sets instead of hardcoding ASCII space for featureless cells. 33 One practical upshot of this is that the constant-width braille range can 34 be used to produce consistent images even in contexts with variable-width 35 fonts. U+2800 (BRAILLE PATTERN BLANK) will then be used in blank cells. 36 37* Improved terminal size detection when used with pipelines and redirection. 38 This should now produce an image properly sized for your terminal: 39 40 $ curl https://i.imgur.com/WFDEFVg.jpeg | chafa - | tee out 41 42* ChafaCanvas gained API functions for programmatically getting and setting 43 character cell contents. These are used in a new example in tests/ncurses.c 44 demonstrating ncurses integration. 45 46* Made --disable-rpath the default in order to simplify packaging. 47 48* Added a HACKING file featuring a much needed release checklist. 49 50* Improved terminal support: 51 - Ctx will now use optimizing REP sequences at high -O levels. 52 - foot now defaults to sixels (Daniel Eklöf). 53 - iTerm2 now defaults to the iTerm2 protocol. 54 - Kitty now defaults to the Kitty protocol. 55 - st now defaults to truecolor symbols (Roman Wagner). 56 57* Bug fixes: 58 github#44 Missing error handling on stdout writes (reported by Markus 59 Elfring). 60 [unfiled] Solid symbols erroneously replaced by fill in FGBG mode. 61 [unfiled] Integer formatter was not using fast path for 8-bit values. 62 [unfiled] Wrong default cell aspect used for sixel graphics. 63 641.6.1 (2021-06-03) 65------------------ 66 67This is a bugfix release. 68 69* Add NOCONFIGURE variable to autogen.sh to skip configure (Biswapriyo Nath). 70 71* Bug fixes: 72 github#50 SIGBUS while loading huge GIFs (reported by Grzegorz Koperwas). 73 github#52 Produces small glitches in output with some images (reported by 74 Sami Farin). 75 github#54 Haiku port fails on 32bit (Luc Schrijvers). 76 [unfiled] Exclude RTL code points that could break the output. 77 [unfiled] Apple Terminal lacks truecolor support, so make it default to 256 78 colors (reported by Behdad Esfahbod). 79 [unfiled] Fix typo affecting middle dot symbol. 80 811.6.0 (2021-01-15) 82------------------ 83 84This release adds major features and important fixes to both libchafa and 85the chafa command-line tool. 86 87* Added support for fullwidth symbols that take up two character 88 cells. These are common in East Asian scripts. Single-cell and 89 double-cell symbols can be mixed, and -f symbols mode will use both 90 if possible. 91 92* New symbol tags: Alpha, digit, alnum, narrow, wide, ambiguous, ugly, bad. 93 "Ambiguous" symbols have uncertain widths and may render poorly in some 94 terminals. "Ugly" denotes symbols that are unsuitable for Chafa's 95 cell-based graphics (multicolor emoji, ideographic descriptors, etc). 96 "Bad" is a superset of these two categories. Bad symbols are always 97 excluded unless explicitly enabled with e.g. CHAFA_SYMBOL_TAG_BAD 98 (--symbols +bad in the frontend). 99 100* The font loader (--glyph-file option) now does a better job with 101 proportional fonts. 102 103* Added options for controlling lossless optimization of output. Currently, 104 attribute reuse and character repetition (REP sequence) are implemented. 105 106* Added -O option to the frontend. This controls the optimization level. 107 108* Added a simple abstraction layer for terminal control sequences 109 (ChafaTermInfo and ChafaTermDb). This allows for improved terminal 110 support. 111 112* FbTerm is now supported with TERM=fbterm in the environment. 113 114* Bug fixes: 115 github#43 Fix signal handler (reported by Markus Elfring). 116 [unfiled] Crash when invalid font paths were passed on command line. 117 [unfiled] Small typo in fontgen's README (Tim Gates). 118 [unfiled] Bad contrast adjustment in images with transparency. 119 1201.4.1 (2020-04-10) 121------------------ 122 123This is a bugfix release. 124 125* Added configure option --disable-rpath. This allows packagers to 126 prevent the hard-coded library search path from being embedded in 127 the chafa command-line tool (Mo Zhou, github#39). 128 129* Added defaults for the yaft terminal. 130 131* Bug fixes: 132 github#40 Fails to build on hurd-i386 + other i386 (reported by 133 Mo Zhou). 134 [unfiled] Rare failed assert with mostly transparent sixel image 135 (reported by Reddit user spryfigure). 136 [unfiled] Minor typo in function docstring. 137 1381.4.0 (2020-04-01) 139------------------ 140 141This release adds major features to both libchafa and the chafa 142command-line tool. 143 144* Added sixel graphics support. Chafa will automatically produce sixels 145 if the connected terminal supports it. It can also be forced using the 146 new -f or --format flag. This is a new implementation written from the 147 ground up to maximize throughput. 148 149* Added the --glyph-file option, which loads glyph-symbol mappings from 150 any file format supported by FreeType (TTF, PCF, etc). This allows for 151 custom font support and improved symbol selection. 152 153* Added the --speed option specifying animation speed. It accepts a 154 unitless multiplier, a specific number of frames per second, or "max" 155 for maximum throughput. 156 157* There are now two ways to assign colors to symbol cells. Formerly, 158 this was done based on the average color of the covered area. The new 159 default is to use the median color, which produces sharper edges, 160 but is slightly more prone to high-frequency noise. The new option 161 --color-extractor selects the method to employ. 162 163* When displaying multiple files, the default delay between files has 164 been changed from three seconds to zero. Animations will still play 165 through once. This can be overridden on the chafa command line with -d 166 or --duration. 167 168* Minor tweaks to built-in symbols. 169 170* Performance improvements: 171 - Halved pixel storage requirements from 64 bits to 32 bits, resulting 172 in significant memory savings. 173 - Now builds with -ffast-math, yielding a big speedup for DIN99d. 174 1751.2.2 (2020-03-02) 176------------------ 177 178This minor release fixes a bug causing builds linking with libchafa to 179fail. 180 181* Bug fixes: 182 github#34 Cannot compile example (found by Petr Bílek). 183 1841.2.1 (2019-08-15) 185------------------ 186 187This minor release fixes a few bugs and improves terminal detection. 188 189* Detect kitty and mlterm virtual terminals and apply optimal defaults 190 accordingly. 191 192* Make Automake build more strict and fix a few compatibility nits. 193 194* Bug fixes: 195 github#30 Failed to build on hurd-i386 (found by Mo Zhou). 196 [unfiled] Crash on certain broken GIFs. 197 1981.2.0 (2019-08-04) 199------------------ 200 201This is a feature and performance release. 202 203* Added --dither, --dither-grain and --dither-intensity options. These 204 allow for sub-cell dithering in quantized modes (none, 2, 16, 240 205 and 256). Especially beneficial when used with -p off. 206 207* Added API for ordered and diffusion-based dithering in quantization. 208 209* Added API support for multiple 8bpc pixel modes: RGB, BGR, RGBA, BGRA, 210 ARGB, ABGR with either premultiplied or unassociated alpha channels. 211 212* Smooth scaling is now done internally, meaning libchafa consumers no 213 longer need to prescale images. 214 215* Implemented a machine learning tool that can generate custom fonts 216 for efficient image reproduction from a provided dataset. This is 217 left uninstalled since it's still experimental (Mo Zhou). 218 219* Throughput improvements: 220 - GIF animations now start playing instantly. 221 - GIF CPU overhead reduced by 75%, peak memory use down 95%-99% (!). 222 - XWD common case CPU overhead down 60-70%, peak memory down 70%. 223 - Additional halving of CPU overhead in 240- and 256-color modes. 224 - Streamlined pixel pipeline for better parallelization. 225 226* Installation instructions: 227 - New: Guix (Guy Fleury Iteriteka). 228 - New: openSUSE (Michael Vetter). 229 230* Bug fixes: 231 [unfiled] Certain SVGs had transparency replaced with a white 232 background (nemo). 233 [unfiled] -lm dependency belongs in libchafa, not frontend. 234 2351.0.1 (2018-12-18) 236------------------ 237 238* Bug fixes: 239 [unfiled] Bad geometry calculation when specifying one dimension 240 and omitting the other. 241 2421.0.0 (2018-12-16) 243------------------ 244 245This release adds features, greatly improves performance and fixes 246several bugs. Programs written for the command line and libchafa 247interfaces in this release will be supported by future versions in 248the 1.y.z series without the need for modification or recompilation. 249 250* Added ability to specify "fill" symbols to use as halftone for better 251 color approximation. This can be used to augment the regular symbol 252 selection or to replace it (with --symbols none) for a different, 253 purely intensity-based effect. 254 255* Improved preprocessing in 2-color and 16-color modes. This is optional 256 (default: on) and consists of a contrast boost and, for the 16-color 257 mode, an additional saturation boost. The new implementation lives in 258 libchafa and does not rely on ImageMagick. It is multithreaded, and due 259 to its specialized nature, much faster. 260 261* Added --watch option to continuously monitor a file. 262 263* Added more symbols: 264 - Most of the ASCII range. 265 - Braille range (github#2, thanks to Adam Borowski). 266 - Miscellaneous math and scanline symbols. 267 - More geometric symbols (black circle, triangles) (Mo Zhou). 268 269* Throughput improvements: 270 - Fast symbol candidate set reduction by median cut. 271 - Parallel processing with threads. 272 - Prescaling using bilinear interpolation instead of lanczos. 273 274* Installation instructions: 275 - New: Arch (github#12, Felix Yan). 276 - New: Debian testing/unstable (github#9, Mo Zhou). 277 - New: Fedora (github#14, Ricardo Arguello). 278 - Mention missing dependency for Debian (github#13, @medusacle). 279 280* Bug fixes: 281 github#1 -c none produces pointless \e[0m after every line (found by 282 Adam Borowski). 283 github#3 Compile error (found by Lajos Papp). 284 github#4 AM_PROG_LIBTOOL is obsolete, replace it with LT_INIT 285 (Robert-André Mauchin). 286 github#5 Port chafa to i386 architecture (Mo Zhou). 287 github#7 Chafa should not return an error when being asked for 288 --version (Mo Zhou). 289 github#10 Fix detection of MagickWand methods (Felix Yan). 290 github#11 ImageMagick 7 support (found by Felix Yan). 291 github#21 chafa.c:547: pointless assignment (found by @dcb314). 292 2930.9.0 (2018-04-24) 294------------------ 295 296Initial release. 297