1.7.0 is the last major release before 2.0.0. It represents 143 closed issues, 634 commits, and almost exactly two months' development work. It was released one day ahead of schedule (original target: 2020-09-01). GNU libunistring is now necessary for building or linking Notcurses.
Release Notes
- Manipulation of the Linux kernel font tables to vastly improve appearance on the Linux console
- This can be disabled with new option
NCOPTION_NO_FONT_CHANGES
tonotcurses_init()
- This can be disabled with new option
- Significantly developed out the
ncdirect
mode:- Added
ncdirect_flush()
- Added
ncdirect_getc()
,ncdirect_getc_blocking()
,ncdirect_inputready_fd()
andncdirect_getc_nblock()
ncdirect
now puts the terminal intocbreak
mode for immediate access to input- Added
ncdirect_hline_interp()
andncdirect_vline_interp()
- Added
ncdirect_double_box()
,ncdirect_rounded_box()
, and the ridiculously flexiblencdirect_box()
- Added
- Add new
zoo
demo ncplane_puttext()
now observes Unicode word/line breaks and preserves whitespace- EGCs are now inlined into
cell
s whenever they encode to four UTF8 bytes are fewer, for significant perf/mem winscell_simple_p()
has been removed, as it is no longer a meaningful conceptcell_egc_idx()
is no longer exported (it was never meant for users)
channels_blend()
is no longer exported (it was never meant for users)NCOPTION_RETAIN_CURSOR
has been removednotcurses_cursor_enable()
now accepts a coordinate to place the terminal cursor
ncreader
now supports horizontal scrolling viaNCREADER_OPTION_HORSCROLL
- Convenience functions
ncreader_move_{left, right, up, down}()
andncreader_write_egc()
have been added - The
egc
member ofncreader_options
is nowconst
- Added
ncplane_above()
andnotcurses_bottom()
to matchncplane_below()
andnotcurses_top()
- Rust wrappers have been significantly improved by @joseluis
- New
notcurses-direct-pydemo
uses Pythonncdirect
wrappers ncdirect
now attempts to set the locale, ala regularnotcurses
ncneofetch
works in all tested terminal geometries- Several subtle bugs regarding interaction of wide glyphs with narrow glyphs on higher planes were fixed
- Menu items can now be selected with the mouse. Add
ncmenu_mouse_selection()
- PageDown/PageUp now work on
ncselector
andncmultiselector
- Plots can now be titled
- When the alternative screen is desired, but unavailable, clear the screen in
notcurses_init()
ncselector
can now have items added/removed at runtime- Channel coloring is no longer inverted on plots
notcurses-view
now prints the active blitter in the summary bar- We now work properly on
fbterm
andvt100
- Added
ncplane_parent()
andncplane_parent_const()
- We now support musl as an alternative libc
- Planes can now be named, though these names are only used in
notcurses_debug()
- Added
ncplane_new_named()
,ncplane_bound_named()
, andncplane_aligned_named()
- Added
ncdirect_init()
now takes a thirduint64_t flags
parameter. No flags have been defined as of yet.- New convenience functions
ncplane_y()
andncplane_x()
ncreel_*()
now callncreel_redraw()
themselves. Users only need call it when desiring a refresh of tablet data.- The
tabletfxn
used byncreel
for eachnctablet
has been greatly simplified. - Many elements of
ncreel_options
have been removed; they are taken from the containingncplane
- Many bug fixes in
ncreel
- Add
cell_set_fg_palindex()
andcell_set_bg_palindex()
- Added
ncplane_set_fchannel()
andncplane_set_bchannel()
- Add
iprefix()
betweenbprefix()
andqprefix()
ncplane_mergedown()
has been generalized to accept arbitrary planes and subregions.- The old behavior and signature are available as
ncplane_mergedown_simple()
- The old behavior and signature are available as
- Our CMake module has been renamed
Notcurses
fromnotcurses
to better conform to CMake conventions - Added
notcurses_lex_blitter()
,notcurses_str_blitter()
, andnotcurses_str_scalemode()
- Added
notcurses_version_components()
- Added
notcurses_render_file()
to dump last rendered frame to aFILE*
Make a business for yourself, boy, set some goals / Make a fat diamond out of dusty coals / Record number four, but we on a roll / Hold up, slow up, stop, "Control!" / Like Janet, Planet Stankonia's on ya / Moving like Floyd, comin' straight to Florida / Lock all your windows, then block the corridors / Pullin' off my belt 'cause a whipping's in order / Like a three-piece fish before I cut your daughter / Yo quiero Taco Bell, then I hit the border / Pity pat rappers trying to get to 5 / I'm a microphone fiend tryin' to stay alive / When you come to ATL, boy, you better not hide / 'Cause the Dungeon Family gon' ride, high!