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
fromNCBLIT_3x2
andNCBLIT_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 fromneofetch
(the toolneofetch-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()
andncls
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 atopwhiteout
residue. This was unfortunately the default case for DFSG builds =[. notcurses-core
has been split out fromnotcurses
.libnotcurses
depends onlibnotcurses-core
, butlibnotcurses-core
does not depend onlibnotcurses
, nor the multimedia stack. This allows distros to split up the packaging, and system administrators to only installnotcurses-core
when no applications need the fullnotcurses
. See #339, #1300, #1306, #1301, and #1224. To uselibnotcurses-core
, link againstnotcurses-core
instead ofnotcurses
, and usencdirect_core_init()
ornotcurses_core_init()
in place ofncdirect_init()
andnotcurses_init()
respectively.- The functions
channel_set_palindex()
,channels_fg_palindex()
, andchannels_bg_palindex()
have been added. ncplane_abs_yx()
has been added.ncplane_putnstr_yx()
,ncplane_putstr_stained()
, andncplane_putstr_yx()
now properly return the number of columns output, as long documented.notcurses_linesigs_disable()
andnotcurses_linesigs_enable()
have been added, allowing Ctrl+C etc. line discipline transformations to be disabled.- Two new scaling modes,
NCSCALE_NONE_HIRES
andNCSCALE_SCALE_HIRES
, admitting higher-resolution blitters but otherwise operating likeNCSCALE_NONE
andNCSCALE_SCALE
. - Multithreaded
ncls
, and moved it to usingNCSCALE_SCALE_HIRES
. - On Kitty and VTE-derived terminals,
NCBLIT_3x2
is now used forNCBLIT_DEFAULT
(up fromNCBLIT_2x2
). - Work around Kitty behavior that replaced black background with clear ones.
- Replace
cuf
withhpa
for lateral movement, responding much better to terminal/wcswidth()
disagreements. - Fixed a layout bug with (some) Arabic text.
- The
allglyph
demo was replaced with theanimate
demo. The former was largely duplicated byuniblock
, and caused a great deal of performance variance, almost all due to FreeType. - Many bugfixes and optimizations.