Notcurses 2.4
github.com
github.com
While watching the demo, I got flashbacks from the talk from Gary Bernhardt, 'A Whole New World'[1].
[1] https://www.destroyallsoftware.com/talks/a-whole-new-world
$ brew install notcurses && notcurses-demo
> Eventually, this will be expanded to eliminate our reliance on TERM and dependence on terminfo.
So they're doing feature detection? I didn't know that was possible for terminals, but if it is then it does seem like a nice step forward. Of course, it seems like such an obvious improvement that I'm curious why it hasn't happened before (i.e. why is everyone else still depending on TERM?)
> Numerous patches were submitted to upstream terminals to support this functionality.
Seems like a long wait now but is worth it later.
I tested over 24 terminals personally, and the only one I found which didn't respond to DA1 was Terminology from EFL, which crashed forty ways to a friday anyway so who really cares?
i'm glad you asked, as i'm hella proud of this entire system. you can check the code at:
https://github.com/dankamongmen/notcurses/blob/master/src/li...
and
https://github.com/dankamongmen/notcurses/blob/master/src/li...
i mean, it's tricky, and you have to think some things out pretty carefully, but it works. everything hinges on DA1.
many props to @dknl of the "foot" terminal emulator, who just kicks ass in general and first turned me on to DA1:
you can see the history in bugs starting with https://github.com/dankamongmen/notcurses/issues/1469
hack on!
Actually that raises an interesting question. Can OpenGL work in Notcurses?
Graphical desktop on the terminal.
Yes, this is quite easy to do with OSMesa, or with EGL_KHR_surfaceless_context. With the latter it will be hardware accelerated too.
There is a dedication for this release:
the 2.4.0 release of Notcurses is dedicated with loving memory to Gregory Allen Black, aka Pa Dank, 1949–2021. give 'em shit in the afterlife, dad. don't take any guff from those fucking swine. hearts alive. roll tide roll.
While I do not know, I concur with it likely being his dad who is the University of Alabama alumnus
Why?
alas, it's pretty hard to get it up for GT when you just got waxed by a directional middle school from illinois.
still i wonder if this thing couldn't embed itself into a bash-process and serve tui frames with a scriptable curses api so that you could, for ex, have some tabs and buttons and graphs on a system status app
it could bring inversion of control to node and any kind repl .. so that instead of away from a term-info and term-cap standard, one would move toward curses as an acessible tui/gui metaphor, or at least toward something that makes sense without constant apologies for the past.
maybe i'm not using the right words, but it seems to me that hacking this up so it can be stuck into bash so that its api appears like any other language extension would make notcurses a highly desirable dependency for just about any project!
My laptop literally has CDE installed on it, using motif, indistinguishable from how it looked and acted decades ago. GTK is not the world.
But if you don't have any issues with motif and it works for you then that's great.
TUIs are easier to deploy and the GUI landscape is fragmented. But the only reason why TUIs are common is because the users are comfortable with them. I think that the proportion of users who are comfortable at a command line is much higher with Linux, BSD, or even macOS users than other OSs.
If the users weren’t comfortable using a CLI or TUI, there would be a bigger push to unify the GUI landscape. Otherwise no programs would get written because they wouldn’t be used.
Writing for a modern native GUI strongly favours an OO language like a c#/Dart/Swift/Vala/Java. And it isn't just the language but the ABI. A java or gobject or c++ gui library doesn't always map well onto another language. There is a lot of code out there where adding a GUI isn't trivial or fun. Tk used to fill this gap a bit but it fell out of fashion.
It is trivial to output formatted text to a terminal from any language with some ANSI escape codes. It also easy to do templating and html to provide a web interface.
Also, terminal apps are great! Where would I be without a decent terminal text editor? Certainly not SSH'd into some cloud instance.
impressive!
41% rust :thumbup:
which is only a wrapper library/bindings.