github dankamongmen/notcurses v2.2.0
v2.2.0—no one man should have all that power

latest releases: v3.0.11, v3.0.10, v3.10.0...
3 years ago

Notcurses 2.2.0

This series took just about two months, and saw 461 commits. 100 issues were closed during the course of 2.2.0 development. Please note that notcurses-view has been renamed ncplayer, and notcurses-tetris has been renamed nctetris. The Rust wrappers have been significantly improved by @joseluis. MacOSX support is supposedly coming really soon now from @grendello . While we're still carrying around my original Python wrappers in cffi/, @igo95862 's far superior ones are available in python/. I presented on Notcurses at FOSDEM 2021.

Changes since 2.1.8

  • Blitters properly degrade to NCBLIT_2x2 from NCBLIT_3x2 and NCBLIT_BRAILLE on linux console (#1334)
  • Fix transparent blitter stacking when the lower plane has no transparency (#1322)
  • ncplayer now always shows actual blitter being used (#1336)
  • First use of notcurses_getc() and other input functions no longer resets colors on tmux (#1314)
  • When using rendered mode but inhibiting the alternate screen, the cursor is now placed on the bottom left on exit (#1337)

Other changes since 2.1.0

  • "Transparent blitter stacking". When visuals are blitted atop one another, we change rendering strategy slightly (this only applies to cells rendered as part of visuals) so that transparent visuals look more like what's logically expected. For full details, see #1068 and #1322. This seemingly subtle issue was necessary for proper sprite support.
  • Direct mode now supports GNU Readline transparently using ncdirect_readline(). See #1120 and #1326.
  • New statistics have been added to track rasterization time. The performance output includes these, as does the notcurses-demo summary table. See #1324.
  • A bug has been fixed that sometimes caused ncplayer to abort on resize #1302
  • ncneofetch now includes the various ASCII art from neofetch (the tool neofetch-rip is used to automatically extract them). This is used whenever no image is known for the distro, when that image can't be loaded, and if there is no multimedia support. See #1260 and #1304.
  • Notcurses now builds and works on DragonFly BSD, see #1121
  • A new progress bar widget has been added, and added to the uniblock demo, see #1202, #1209, #1213, and #1151.
  • ncdirect_visual_render() and ncls now support alignment, see #1195
  • Direct mode now installs fatal signal handlers by default, like rendered mode. This can be disabled with NCDIRECT_OPTION_NO_QUIT_SIGHANDLERS.
  • Fixed crash in fallin demo when run atop whiteout residue. This was unfortunately the default case for DFSG builds =[.
  • notcurses-core has been split out from notcurses. libnotcurses depends on libnotcurses-core, but libnotcurses-core does not depend on libnotcurses, nor the multimedia stack. This allows distros to split up the packaging, and system administrators to only install notcurses-core when no applications need the full notcurses. See #339, #1300, #1306, #1301, and #1224. To use libnotcurses-core, link against notcurses-core instead of notcurses, and use ncdirect_core_init() or notcurses_core_init() in place of ncdirect_init() and notcurses_init() respectively.
  • The functions channel_set_palindex(), channels_fg_palindex(), and channels_bg_palindex() have been added.
  • ncplane_abs_yx() has been added.
  • ncplane_putnstr_yx(), ncplane_putstr_stained(), and ncplane_putstr_yx() now properly return the number of columns output, as long documented.
  • notcurses_linesigs_disable() and notcurses_linesigs_enable() have been added, allowing Ctrl+C etc. line discipline transformations to be disabled.
  • Two new scaling modes, NCSCALE_NONE_HIRES and NCSCALE_SCALE_HIRES, admitting higher-resolution blitters but otherwise operating like NCSCALE_NONE and NCSCALE_SCALE.
  • Multithreaded ncls, and moved it to using NCSCALE_SCALE_HIRES.
  • On Kitty and VTE-derived terminals, NCBLIT_3x2 is now used for NCBLIT_DEFAULT (up from NCBLIT_2x2).
  • Work around Kitty behavior that replaced black background with clear ones.
  • Replace cuf with hpa for lateral movement, responding much better to terminal/wcswidth() disagreements.
  • Fixed a layout bug with (some) Arabic text.
  • The allglyph demo was replaced with the animate demo. The former was largely duplicated by uniblock, and caused a great deal of performance variance, almost all due to FreeType.
  • Many bugfixes and optimizations.

Don't miss a new notcurses release

NewReleases is sending notifications on new releases.