8 ms·
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
by dankamongmen 5y 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 https://www.youtube.com/watch?v=dcjkezf1ARY
- nine_k 5y agoThis 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?
- dankamongmen 5y agono, Notcurses supports both Sixel and the Kitty protocol (indeed, i proposed https://github.com/kovidgoyal/kitty/issues/3809 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 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_TErminal_GrAphics_Protocol 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_Practice_of_Sprixels https://nick-black.com/dankwiki/index.php?title=Theory_and_P... sorry for the link spam =/
- dankamongmen 5y agoas for performance, i have numbers from the end of 2019 on my wiki: https://nick-black.com/dankwiki/index.php?title=Notcurses#Terminal_emulators 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 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.
- junon 5y agoSurprised 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.
- coldtea 5y ago>happy to answer any questions anyone might have! Any reason for the snark towards a Java port in the FAQ?
- dankamongmen 5y agoi 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/ 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.
- coldtea 5y agoFair enough. Modern Java is nowhere near Java 1.1 (or even Java 1.4 for that matter).
- rnd0 5y agoI 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!
- dankamongmen 5y ago1) 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!