be aware: 3.0.0 and ABI3 are coming soon! this will see all deprecated material removed, possibly requiring code changes on your part. be sure you're actively moving away from deprecated functions (they're all marked, and ought elicit compiler warnings).
- Add full support for features 2 and 8 of the Kitty keyboard protocol. This results in very thorough coverage of keyboard events, but some of them might be unexpected. Each keypress will typically now result in at least two input events (a press and release). Keys that previously resulted in no event (e.g. shift, alt, etc.) now result in events. These events will only be generated on Kitty or other terminals implementing this protocol.
XTMODKEYS
is now used where supported, providing more coverage of keyboard events.- Sixel support was previously detected via
XTSMGRAPHICS
replies. It is now predicated on the presence of a '4' feature in the Device Attributes response. As a result, Sixel is now supported on numerous terminal emulators where it was not previously detected. Terminal authors are strongly encouraged to implementXTSMGRAPHICS
if implementing Sixel. ncvisualplane_create()
now allows for a new pile to be created by passing aNULL
ancestor plane invopts
.ncvisual_render()
has been deprecated, replaced byncvisual_blit()
.ncvisual_render()
is still available, but will be removed for ABI3. The new function is pile-aware. When aNULL
value is passed asvopts->n
, or whenvopts
itself isNULL
, a new plane will still be created, but it will now be in a new pile (previously, the new plane would be in the standard plane). To maintain the old behavior withncvisual_blit()
(i.e. to make a new plane bound to the standard plane), pass the standard plane asvopts->n
, and addNCVISUAL_OPTION_CHILDPLANE
ton->flags
. See #1462.- Use unnamed pipes on Windows for input readiness notification.
const
ify most of the relevant members of various widget creation options.notcurses-demo
now uses seconds rather than semiseconds as the base unit of the FPS plot.- Detect GNU screen. Never attempt to use RGB with screen 4.
- Support smooth bitmap movement / precise bitmap placement when using the Kitty graphics protocol. Support will be added for sixel and fbcon soon. Use the new
pxoffy
andpxoffx
members of thencvisual_options
struct. - Replace all
wcstombs()
calls with thread-safewcsrtombs()
. - Send synthesized signals even when
NCOPTION_INPUT_DRAIN
is in use. - Extract version from Secondary Device Attributes for older XTerms.
- Properly reset the keyboard state after a crash in initialization.
- Properly push and pop keyboard states when switching to and from the alternate screen post-initialization.
- Widget input handling functions ignore all keyboard event types save press.
- Add new
NCKEY
constants for modifiers and other keys which previously didn't generate events. - Use explicit CRLFs where necessary on Windows, fixing banners.