Skip to content

Releases: dankamongmen/notcurses

v2.1.8—my hyperbole is hyper, my energy kinetic

03 Feb 13:35
v2.1.8
54ca224
Compare
Choose a tag to compare
  • Fix abort on certain screen resizes (#1302)
  • ncneofetch: fall back to ncart if built without multimedia support
  • Eliminate per-ncvisual leak of subtitle context memory
  • CMake support for NotcursesCore
  • notcurses-tetris renamed to nctetris
  • null multimedia implementation
  • Initialize libreadline on demand; eliminate NCDIRECT_OPTION_NO_READLINE (only existed since 2.1.6)
  • Add raster timing stats
  • Rename notcurses_directmode.3 man page to notcurses_direct.3
  • Add missing function channel_set_palindex()
  • Implement transparent blitter stacking (#106, #1317)

v2.1.7—land to reform, limb by limb

21 Jan 08:21
v2.1.7
121f10a
Compare
Choose a tag to compare
  • Split libnotcurses into libnotcurses and libnotcurses-core. Link against the latter (using ncdirect_core_init() and/or notcurses_core_init()) to build a client binary that can run without multimedia support being installed.
  • Renamed notcurses-view to ncplayer.
  • Tidy up the animate demo a bit.
  • Fix pkg-config files for static linking.

v2.1.5—it's my job to keep punk rock elite

15 Jan 10:14
v2.1.5
3ecdde7
Compare
Choose a tag to compare
  • Resolved a bug when a plane with grandchildren was removed or reparented.
  • Replaced the allglyph demo with animate. The former was wildly divergent in runtime, mostly reflecting libfreetype's feelings that day, and tended to dominate deltas across runs. It was also kinda redundant, given the uniblock demo.
  • Imports all the ASCII logos from neofetch, and uses them as fallbacks if we don't know a pretty logo for the distro in ncneofetch.
  • Addressed various issues keeping us from building on DragonFly BSD.
  • Test (using wcwidth()) for libc support of Unicode 13 at startup, and deny sextants if it's lacking. This prevents us from trying to use sextants on FreeBSD, which was causing notcurses-demo to blow up in fallin'.
  • New functions ncplane_abs_yx() and ncplane_abs_y()/ncplane_abs_x().
  • Don't use tiparm() with parameterless control sequences.
  • Read /etc/os-release and use any LOGO field found therein.
  • ncneofetch now uses vendor_id in /proc/cpuinfo; fixes s390x
  • ncneofetch now uses sysctl(3) on BSD, where it now works
  • FIxed return values of a few output functions to return columns not bytes written

v2.1.4—only came to save the game like a memory card

04 Jan 00:55
v2.1.4
e617ace
Compare
Choose a tag to compare
  • Resolves bug when switching from palette-indexed color to RGB color in direct mode.
  • Improve image quality in ncneofetch with NCSCALE_SCALE_HIRES.
  • Parse /etc/os-release looking for a LOGO entry in ncneofetch.
  • Catch fatal signals in direct mode like we do fullscreen mode.
  • Resolves bug in fallin' demo that led to failure in the presence of NCBLIT_3x2.
  • Resolves some longstanding bugs related to very wide EGCs.
  • Improvements to documentation.

v2.1.3—what the hell is a jygawatt?

31 Dec 08:02
v2.1.3
70b74a7
Compare
Choose a tag to compare
  • Fix for slight systematic progress bar overestimation
  • Fix for crash in fallin demo when run while whiteout residue is on the screen
    • This affects the default run in DFSG builds :/
  • notcurses-view, notcurses-demo, and ncls all now accept -V for versioning info
  • Fix for BigMult unit test in locales with decimal separators other than '.'
  • ncdirect_*() setters have been deprecated, and reimplemented as wrappers around ncdirect_set_* equivalents
  • Gobs of Rust work courtesy @joseluis
  • Fix writeout timing statistics

v2.1.2—i can freak a fit that pump with the peep

26 Dec 07:54
v2.1.2
55d563b
Compare
Choose a tag to compare

https://www.youtube.com/watch?v=BqdfGNlUHA4

Since 2.1.1:

  • Added two new scaling specifications: NCSCALE_NONE_HIRES and NCSCALE_SCALE_HIRES. These act like NCSCALE_NONE and NCSCALE_SCALE, except they admit use of higher-resolution blitters.
  • On Kitty and VTE-based terminal emulators (well, anything with kitty, vte, or gnome in the TERM variable), we now default to NCBLIT_3x2 rather than NCBLIT_2x2 for NCSCALE_NONE_HIRES, NCSCALE_SCALE_HIRES, and NCSCALE_STRETCH.
  • Work around kitty behavior that left large transparent areas in the place of black ones
  • Added notcurses_linesigs_enable() and notcurses_linesigs_disable() to enable/disable Ctrl+C, Ctrl+Z, and Ctrl-\.
  • Divide ncdirect_render_image() into component ncdirect_render_frame() and ncdirect_raster_frame() (the original remains), allowing multiple threads to decode images concurrently.
  • Direct mode image rendering now honors transparency.
  • We now use hpa rather than cuf and cup for horizontal movement. This has negligible effects on non-pathological speed/bandwidth, but improves our behavior in rare situations where our concept of our location diverges from the terminal's.
  • notcurses-view now has a -t option to show media for a certain amount of time, rather than prompting to continue.
  • ncls now uses NCSCALE_SCALE_HIRES.
  • ncls is now multithreaded, substantially accelerating it when listing multiple files.
  • notcurses-demo now rejects extra command line arguments.
  • Fixed list corruption in ncpile_drop().

v2.1.1—ever since a young buck i been on the comeup

16 Dec 22:42
v2.1.1
2d07bbe
Compare
Choose a tag to compare
  • New progress bar widget, ncprogbar
  • Fix bugs in ncplane_reparent() that could lead to undefined behavior
  • Fix layout bug with Arabic text
  • Add progress bars to uniblock and allglyph demos
  • Added --align argument to ncls
  • New unit tests, ((nonnull)) annotations on widget functions
  • Remove meaningless %r/%w averages from notcurses-demo summary
  • Disallow some invalid parameters to ncplane_resize()

slice like a ninja, cut like a razor blade

v2.1.0—rubberband man

13 Dec 08:04
v2.1.0
6edafd1
Compare
Choose a tag to compare

2020-11-28-173220_3440x1420_scrot
Notcurses 2.1.0 sexblitter via notcurses-view in a 343x70 xterm4-terminal, Liberation Mono 11—let's play Global Thermonuclear War.

88 issues were closed since 2.0, including:

  • A notcurses context now supports one or more piles. A pile is a set of ncplanes, ordered on a distinct z-axis. Distinct piles can be freely modified or rendered concurrently. Rendering and rasterization have been broken up; see ncpile_render() and ncpile_rasterize(). Of course, notcurses_render() continues to function, rendering+rasterizing the standard pile (that pile with which the standard plane is associated).
    • Added ncpile_top() and ncpile_bottom()
    • Unless you're using parallelism to achieve the highest level of performance, you probably needn't concern yourself with piles. There is no API/conceptual breakage, only extensions.
  • The powerful new 3x2 "sexblitter" (and plotter) has been added, using Unicode 13's sextant glyphs.
    • Support for these glyphs is not yet robust in all terminal emulators, but we're working on it!
    • It's not yet been set as the default for NCSCALE_STRETCH, but will be soon
  • Added the ncls tool, and a manual page for it.
  • @igo95862 's experimental new Python wrappers are available, though the original ones are still around
    • You are encouraged to migrate to these wrappers! They're much better.
  • cell has been renamed nccell. The former name is retained as an alias.
    • cell is kept for backwards-compatibility only. It will be removed in 3.0.
  • Fixed a longstanding bug in input when pasting long supra-ASCII sequences
  • Fixed a longstanding bug with EGCs containing multiple printing glyphs
  • ncvisual_decode_loop() has been added to support looping through the frames of a video, and back to the beginning.
  • The keller demo was added, providing a slideshow of media blitted using each blitter in sequence.
    • This is the last planned demo. There are now 25 demos in notcurses-demo.
  • notcurses-demo can now run notcurses_debug() in a subwindow on demand.
  • notcurses-demo now graphs frames plots at 2Hz, using Braille
  • Fixed the colors of the birds in the eagle demo
  • notcurses-view now accepts -q to inhibit writing info while rendering.
  • Blitter switching in media res has been fixed in notcurses-view.
  • Quadblitter's rasterization emits fewer bytes of control sequences
  • Quadblitter's rasterization has been substantially optimized time-wise.
  • ncmenu items can be disabled/enabled on the fly.
  • ncmenus now stretch/shrink along with their binding plane
  • ncmenu_offer_input() now handles section shortcuts.
  • ncmenu handles menu items without long descriptions properly now.
  • Added the ncinput_equal() predicate.
  • Small bugfixes were made to tablet-positioning in ncreel.
  • A plane's resize callback function can be set/acquired with ncplane_set_resizecb() and ncplane_resizecb().
  • Resize callbacks are now propagated across ncplane_dup()
  • ncplane_create() is now preferred to ncplane_new(). The ncplane_options struct has eliminated its horiz union, replacing it with int x (previously a member of said union). We weren't buying any actual type safety with the union, and this means less to type in initializers. Sorry for the API breakage :(.
  • A bug that could send the ffmpeg decoder into a livelock has been resolved.
  • Fixed a bug in plots when the range of values was very small
  • ncdirect_image_render() now properly resets colors and styles upon completion.
  • ncreader now supports most major readline keyboard shortcuts.
  • Manual pages no longer have -- folded down into an en dash.
  • Notcurses now supports NCSTYLE_STRUCK for struckthrough text.
    • As this isn't defined in terminfo, you use it at your own risk, though I suppose that's true for everything.
  • Bug fixed affecting NCSTYLE_ITALIC following other SGR controls in both fullscreen and direct mode.
  • A longstanding bug in the subproc unit tests leading to deadlock has been resolved.
  • ncplane_reparent_family() has been added, allowing an ncplane to be reparented without losing its children.
  • Added notcurses_stddim_yx_const(), a const analogue of notcurses_stddim_yx().
  • Added new cell_load_egc32() to support loading from a uint32_t (as opposed to const char*)
  • New macros NOTCURSES_VERSION_COMPARABLE and NOTCURSES_VERNUM_ORDERED

As you'll note, API change has dropped drastically since the freewheeling 1.x days, but I'm still of a mind to suffer a one-time breakage rather than carry crap eternally forward, especially if the fixups are trivial (as they were in the case of ncplane_options). If you can't deal with that, there are about four-thousand other TUI libraries...

...but none of them are so 🔥🌿💯 as Notcurses =]. Word is bond.

Hack on! —dank and the gang

2020-12-06-131245_3440x1440_scrot

v2.0.12—moosebumps

12 Dec 11:42
v2.0.12
8497ee1
Compare
Choose a tag to compare

good lord, please let the unit tests be fixed on alpine

v2.0.11—i opened up shop at 13

09 Dec 05:34
v2.0.11
eb485cd
Compare
Choose a tag to compare