Hacker News new | ask | show | jobs
by dankamongmen 1766 days ago
hey there! this is my project of close to two years. happy to answer any questions anyone might have!

if you haven't seen it, you might enjoy the Notcurses III hype video: https://www.youtube.com/watch?v=dcjkezf1ARY

4 comments

I watched the video and was very impressed -kudos!

I have a couple of questions that hopefully you haven't answered elsewhere. I looked over the github for your project but it was 3am so I might have missed it they're answered there.

1)I saw that this can be run over ssh -but in a graphical terminal. Does this require the client terminal to be running on something like X or Wayland or would it work from a regular console?

2)I didn't noticed any BSD ports, is this an afterthought (ie if you don't use BSD you wouldn't port it) or do you mostly lean into a lot of Linux specific system calls?

Anyway -the video was very intense in a great way and it's good to see a next next generation curses!

1) you can run from a regular console. if it's a linux framebuffer console and you're local, it'll even use the framebuffer to draw graphics. if you're on a pure VGA console, or ssh'd from the framebuffer console, that obviously won't work, alas.

2) there is an up-to-date port in the Ports Collection (i maintain it), and DragonFly imports things from time to time (they're running a pretty old 2.2.2 iirc). nothing on NetBSD or OpenBSD but i'd love to be there, and would be happy to take PRs!

Surprised I Need Air didn't get you copyright striked. Such a great song.

This looks very well done, probably the best library for this in existence judging from the video. I'll have to take a closer look later, thanks for sharing the video link.

>happy to answer any questions anyone might have!

Any reason for the snark towards a Java port in the FAQ?

i TA'd the intro to computer science class at Georgia Tech, taught using Java 1.1.7, back in 1999, and have used very little java since. at the time, it was not a particularly pleasant environment, though i suppose few things were.

more concretely, Autumn Lamonte's Jexer (https://jexer.sourceforge.io/) is a far better solution for Java, better than any wrapper of Notcurses could ever be due to its rich integration with the language and its expansive APIs.

beyond that, i authentically don't ever want to have to deal with bugs about a java port.

Fair enough. Modern Java is nowhere near Java 1.1 (or even Java 1.4 for that matter).
This does look impressive!

I wonder if the bitmap support is limited to terminals which support sixels.

I also wonder what is the CPU price of the raster graphics, flying windows, etc — I suppose it's depends heavily on the terminal emulator? Which of them performed best?

no, Notcurses supports both Sixel and the Kitty protocol (indeed, i proposed https://github.com/kovidgoyal/kitty/issues/3809, which drastically cut down on the bandwidth necessary for certain operations), in addition to the Linux framebuffer console (where we use a direct mmap of the framebuffer). WezTerm recently added support for the Kitty protocol, and indeed Notcurses was used to validate that work: https://github.com/wez/wezterm/issues/986. i sat down to design the ultimate terminal graphics protocol, and it ended looking so much like Kitty's that i resolved to just advocate terminals pick up that one: https://nick-black.com/dankwiki/index.php?title=Spriteful_TE...

btw if you want some insight into how Sixel/Kitty are used together with glyphs, i wrote it up here: https://nick-black.com/dankwiki/index.php?title=Theory_and_P...

sorry for the link spam =/

as for performance, i have numbers from the end of 2019 on my wiki: https://nick-black.com/dankwiki/index.php?title=Notcurses#Te...

in general, kitty and alacritty are both pretty damn fast. xterm lags behind, and really lags behind if you're using truetype fonts. wezterm wasn't included in these samples; my general impression is that it's behind them both, but catching up quickly. Konsole and VTE-derived terminals are well behind the Kitty/Alacritty forerunners.

if you're using wayland, foot is a masterpiece.

Appendix B of the notcurses book (https://nick-black.com/htp-notcurses.pdf) entitled "Wherein shade is thrown at terminal emulators..." explores this subject in more depth, though still not as completely as i'd have liked.