12 ms·
Hacking the Planet With Notcurses: A Guide to TUIs and Character Graphics [pdf]
- mkj 6y agoThis is an excellent read - the topic of UIs for terminal emulators might seem dry but the author has done a really good job with this user manual. It's the library to replace ncurses. Worth a look for any Linux programmer.
- dankamongmen 6y agoThanks for the kind words, hax0r! (I'm the author). Notcurses 1.5.0 ought be out by this week's end, complete with "new" (as much as anything is "new") Quadrant Blitter Technique: https://nick-black.com/images/new-terminal-technique.png https://nick-black.com/images/new-terminal-technique.png and of course, if you've never seen it, be sure to check out `notcurses-demo`. it's come a long way since 1.1.0, but this video from January still captures the essence of the project: https://www.youtube.com/watch?v=-H1WkopWJNM https://www.youtube.com/watch?v=-H1WkopWJNM hack on! ps. mysterious n-gate.com author [0], if you're reading this, you're doing the LORD's work. [0] my guess is james mickens
- vanderZwan 6y agohttp://n-gate.com/about/ http://n-gate.com/about/ Oh my, that is glorious! Thank you for introducing me to this website, on top of notcurses :)
- otoburb 6y ago>>and of course, if you've never seen it, be sure to check out `notcurses-demo` That demo was dope. Thanks for putting that up and linking it. Probably the best way to communicate how far TUIs can go.
- dankamongmen 6y agothanks! it looks a lot better recently -- the 1.4.0 version is much cleaner than that 1.1.0 garbage. i didn't link it because it starts with a minute of me talking (and looking absolutely hideous that day, ugh): https://www.youtube.com/watch?v=TvWdUfIStDI https://www.youtube.com/watch?v=TvWdUfIStDI
- nhumrich 6y agoI am really excited for this. I have constantly felt like nurses was under-whelming, yet very very difficult to do anything with (lots of boiler plate).
- kqr 6y agoI wish I had more evidence-based arguments for my opinion, but I strongly believe text-based interfaces are among the best out there. They have an ability to squeeze in an uncanny amount of information in any given space, without turning cluttered. If I think about it, even GUIs tend to be driven by text in most cases. The difference is that every word gets a graphical border (be it in the shape of a button, a tab, a menu item, or whatnot.) These borders are needed in a GUI where the location of the text is less predictable, and it helps novices to see the window under a menu while the menu is shown, but these are not problems for experienced users at predictable text-based interfaces.
- throwaway_pdp09 6y agoOne really great things about text interfaces is they're (drumroll) text-searchable! That's one huge benefit of emacs, if you're shown a huge list of options, hop into the buffer and just search. I've been frustrated by some parts of microsoft interfaces where I'm presented with lots of text options but couldn't search them (can't remember where). A note on the attached PDF document, there seems to be a total blind spot about readability being damaged by dumb colours, look at Figure 8 on P11, I can read the coloured text but it is noticeably harder, therefore slower, than reading the white text on a black background. Also the light blue on white for listing 13 as another example. Anyway, looking forward to reading it.
- MaxBarraclough 6y ago> One really great things about text interfaces is they're (drumroll) text-searchable! Same is true of web applications.
- tuukkah 6y agoUnfortunately, many things can break text search in web applications: components that render into DOM only when they are visible and in the viewport, components that are covered by something else so you can't see them (even though you can search them), pictograms etc.
- 6y ago
- moonchild 6y agoNotcurses is nice, but I believe that tickit[1] is the most mature and exciting option out there. By the author of libtermkey, which was (and is?) the only library to properly read keys from a tty. 1: http://www.leonerd.org.uk/code/libtickit/ http://www.leonerd.org.uk/code/libtickit/
- blux 6y agoThank you for posting this! I was not aware of Notcurses, I just started using Ncurses for an emulator hobby project, will be an interesting read :)
- nickmqb 6y agoDoes anyone know of any minimal TUI libraries? Something in the spirit of a VGA text buffer, that allows the user to manage their own cell buffer as a block of memory, and allows them to blit that to the terminal -- and ideally have that work across a variety of platforms and terminal emulators?
- dmacvicar 6y agohttps://github.com/nsf/termbox https://github.com/nsf/termbox is a very well known one, and has inspired several clones in other languages as well.
- fuball63 6y agoI second termbox. It's a well crafted library, and easy to understand by just reading the h file. I wrote the Ada binding for it just a few weeks ago.
- deleted 6y ago[deleted]
- brobdingnagians 6y agoA little more advanced is CPPurses with a widget framework for creating TUIs,: https://github.com/a-n-t-h-o-n-y/CPPurses https://github.com/a-n-t-h-o-n-y/CPPurses
- dankamongmen 6y agoThanks, I've added CPPurses to the Notcurses OTHERS.md file: https://github.com/dankamongmen/notcurses/blob/master/OTHERS.md https://github.com/dankamongmen/notcurses/blob/master/OTHERS... Taking a quick look, I don't want to besmirch anyone else's efforts, and both of these projects look great. libtickit appears to be missing any kind of multimedia/pixel-based approach along the lines of Notcurses's ncvisual -- I'm not sure about CPPurses, but that one being written in C++ would seem to exclude pure C programs (obviously not if it's using POD structures etc). Both look like good efforts, and there's plenty of room for more than one project in this space. I wish them both luck!
- jart 6y agoA+++++
- dpeck 6y agoNick is, without exaggeration, the finest hacker I've had the pleasure to know and work with. Its hard to believe where Notcurses is considering he just started working on it at the end of last year. The quality and quantity of his output is nothing short of astounding. Poke around his wiki/github, its worth it.