What does HackerNews think of notcurses?
blingful character graphics/TUI library. definitely not curses.
I’ve had his grad-school project libtorque[2] (HotPar ’10), an event-handling and scheduling library, on my to-read list for years, but I can’t seem to figure out how it accomplishes the interesting things it does.
[1] https://nick-black.com/dankwiki/index.php/Notcurses, https://github.com/dankamongmen/notcurses/
The guy is a literal genius, I hope to forget half the stuff he knows.
Also Fabrice Bellard (ffmpeg/qemu) and Inigo Quilez.
There's a library with some impressive demos called "notcurses" if you are curious what kind of graphics can be displayed in a terminal ... the author uploaded some demos to YT showing the capabilities. It's been discussed in HN a bunch of times [2].
0: https://en.wikipedia.org/wiki/Sixel
1: https://sw.kovidgoyal.net/kitty/graphics-protocol/
2: https://github.com/dankamongmen/notcurses - https://hn.algolia.com/?q=notcurses
Check out NotCurses (https://github.com/dankamongmen/notcurses) for some nifty functionality (including pictures!)
https://github.com/dankamongmen/notcurses
Here's a demo:
Check out notcurses-demo and see what you can pull off in a terminal. My only gripe is that tmux degrades significantly. Regardless, dankamongmen is an awesome dude bringing back the demoscene vibes.
Via a terminal bitmap rendering protocol like sixel [0], or KiTTY’s terminal graphics protocol [1]? I wonder if a library like notcurses [2] could allow for efficient rendering of text to a terminal graphics framebuffer?
[0] https://saitoha.github.io/libsixel/
I just read the following links to build up foundation of knowledge first - low-level:
http://%CA%9E.cc/irl/term.html
https://viewsourcecode.org/snaptoken/kilo/02.enteringRawMode...
https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
Other libraries:
# C, C++, Python and Rust
https://github.com/dankamongmen/notcurses
# Python, more polished presentation - but I cannot judge the technical foundation
https://invisible-island.net/ncurses/ // classic
https://github.com/willmcgugan/rich // blingbling
https://github.com/dankamongmen/notcurses // hacker
For the old stuff I recommend looking close at airports, savings-banks or part-dealers. When it is influenced by mainframes you will notice likely forwards/backwards is done by F7/F8. How do you depict an plane with seats in TUI? I assume an array, 80 rows and 10 columns ;)
I'm impressed how flawless elderly co-workers work with TUIs. They read the screen, think and type and the work is done. I guess the straight workflow, clean user-interface and similarities to paper forms improve usability. I guess modal dialogs, popup warnings, status icons, right click and the modern long press are not an improvement in usability. And the many tiny icons and bars in modern text processors aren't a help either.
I think we can learn a lot more from old programmers.
Nick Black has been doing great work creating a successor to ncurses. He took the latest and greatest modern C++ / UNICODE development practices, and made it work really well for the old school terminal stuff from decades ago, which was easier said that done. https://github.com/dankamongmen/notcurses
See also Cosmopolitan, which is more focused on the use case: "All I want is stdio and math; how can I do that without all the breaking builds and broken hearts?" https://github.com/jart/cosmopolitan
Please consider supporting us. These old technologies are widely supported and have stood the test of time. Any positive developments towards making them fresh again, is going to benefit both you and the technology community as a whole.
There are Rust and C++ bindings, and it performs some truly ridiculous TUI tricks.