github dankamongmen/notcurses v2.2.4
v2.2.4—i want to be a fisherman

latest releases: v3.0.9, v3.0.8, v3.0.7...
3 years ago

I'm not delighted with this release, and am not sure I encourage packagers to pick it up. It's got a ton of upheaval. Unfinished staircases to nowhere. Wires hanging from the wall, sparking menacingly. An agitated orca thrashes its powerful tail about. The dolorous moans of the dying and recently dead rise in all the world's languages. You have no face, and need to scream. This is indeed a disturbing universe.

If that doesn't scare you off, 2.2.4 is a huge new release adding Kitty bitmap support and integrating both it and Sixel bitmaps into the overall Notcurses model -- you can put them below other planes, you can put them above other planes, you can erase them, all that good stuff, and it ought more or less work. There are problematic areas, but this is more than enough to play with. So there you go, my droogs, the first library in the world (to the best of my knowledge) to integrate both Sixel and Kitty bitmap graphics, plus all the text you've grown to know and love from Notcurses. That's kinda neat. With that said, do not expect this to reflect the intended experience, and do expect behavior and perhaps even the API to change. It's quite likely that I'll require you to only blit bitmaps to new planes, which might even have a different type than the venerable ncplane that they currently overload. I strongly encourage you to create new, purpose-specific ncplanes for NCBLIT_PIXEL blitting, rather than using existing planes, and not to render text on those planes unto which you have rendered bitmaps both for futureproofing, and for your own sanity (trust me on this).

That's not it, though. 2.2.4 also introduces notcurses_debug_caps() and the caps-rendered PoC. The new option NCOPTION_NO_CLEAR_BITMAPS for notcurses_init() will inhibit the latter's attempts to clear the screen of existing bitmaps on start. You probably don't want to use it. ncplane_halign() and ncplane_valign() have been introduced; ncplane_align() is now a passthrough to ncplane_halign(), and deprecated. It will be removed in ABI3. The NCPLANE_OPTION_VERALIGNED option has been added for ncplane_create(). The NCVISUAL_OPTION_HORALIGNED and NCVISUAL_OPTION_VERALIGNED flags have been added for ncvisual_render() and ncvisual_stream(). @MasFlam contributed the nctabbed widget, so thanks a lot--check out the big brain on @MasFlam ! The redundant notcurses_canpixel() function has been removed (use notcurses_check_pixel_support()). The NCPLANE_OPTION_MARGINALIZED flag has been added for ncplane_create(), allowing planes to be created with margins relative to their parent plane. The ncplane_resize_aligned() resize callback now takes care of vertical alignment if NCPLANE_OPTION_VERALIGNED was used. Finally, new resize callback ncplane_resize_marginalized() has been added, intended for use with NCPLANE_OPTION_MARGINALIZED; it will recompute margins and move/shrink/grow a plane as necessary on a parent plane resize.

Primus--John the Fisherman

Now years gone by we find the man who rules the sea.
He sets out on a dark May morning.
To bring his catch back to this small community.
He doesn't see the danger dawning.
Four hours up, oh the ocean swelled and swelled
The fog rolled in it started raining.
"The starboard bow! Oh my God we're going down!"
They do not hear his frantic mayday.
AND HE SAYS:
When I grow up I want to be
one of the harvesters of the sea.
I think before my days are done,
I want to be a fisherman.
I'll live and die a fisherman!

Don't miss a new notcurses release

NewReleases is sending notifications on new releases.