6 ms·
Notcurses 2.4
- mrlonglong 5y agoThis looks cool, gonna kick the tyres and take it for a spin
- yjftsjthsd-h 5y ago> The terminal is now extensively (but efficiently) queried on startup. Some properties are derived from the results. > 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?)
- p_l 5y agoSimple reason - there was no way to do feature detection reliably on many a terminal, which also makes me wondering how the hell are they going to make it reliable, unless they simply decide to not support many terminals.
- setpatchaddress 5y agoFrom the change log: > Numerous patches were submitted to upstream terminals to support this functionality.
- yjftsjthsd-h 5y agoThat's still going to lose the long tail
- lathiat 5y agoIt’s often so easy not to submit these kinds of changes. But 10 years later you still don’t have them. Seems like a long wait now but is worth it later.
- kjs3 5y agoThey won't support that many terminal types. This is what has been done in this situation for decades.
- dankamongmen 5y agoThe key is ending the device query string with DA1 aka "Primary Device Attributes", which literally every terminal i've managed to test with responds to. Guaranteed that one answer, you completely avoid nasty timeouts. This is required for even VT100 conformance, so it can be expected on even hardware terminals (though not necessarily those outside the DEC family). 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/lib/termdesc.c#L281-L410 https://github.com/dankamongmen/notcurses/blob/master/src/li... and https://github.com/dankamongmen/notcurses/blob/master/src/lib/input.c#L1157-L1808 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 https://github.com/dankamongmen/notcurses/issues/1469 hack on!
- sprash 5y agoI like the very entertaining and thorough documentation. However this just shows that FOSS GUI programming is in such a dire state that people have to resort to TUIs because it is so much easier to develop for and to deploy.
- yjftsjthsd-h 5y agoIs that really a FOSS issue?
- sprash 5y agoThe abandonment of established interfaces happens on purpose on proprietary platforms to force customers to upgrade. The abandonment of established interfaces happens on FOSS platforms equally as frequent without any obvious purpose.
- lavabiopsy 5y agoI'm not sure what you mean? I would suggest to take a look at the release notes for the newest Qt or GTK for example, if you want to see what the purpose of various changes are.
- yjftsjthsd-h 5y ago> The abandonment of established interfaces happens on FOSS platforms equally as frequent without any obvious purpose. My laptop literally has CDE installed on it, using motif, indistinguishable from how it looked and acted decades ago. GTK is not the world.
- lavabiopsy 5y agoThere are reasons for the changes in GTK, though you may not agree with them, if you are confused about some then feel free to check the release notes. Or you can ask and I may be able to explain. But if you don't have any issues with motif and it works for you then that's great.
- quotemstr 5y agoSomething like this has been sorely needed. terminfo has simply failed to keep up with modern terminal features, and propagating new terminfo database entries to remote systems has been a challenge. The combination has been a stagnation of terminal programs combined with hacky ad-hoc feature detection or non-TERM-based, non-portable feature signaling.
- fnord77 5y agojust brew installed it and ran their demo. impressive! 41% rust :thumbup:
- merb 5y ago> 41% rust :thumbup: which is only a wrapper library/bindings.
- brian_herman 5y agoThe guy that does the releases must of gone to the University of Alabama Roll tide roll is what you say at one of their football games to cheer them on. Or maybe his dad went to University of Alabama. Roll tide! 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.
- rietta 5y agoHe went to The Georgia Institute of Technology actually. Nick was a legend in the College of Computing even as an undergrad. While I do not know, I concur with it likely being his dad who is the University of Alabama alumnus
- bigdict 5y ago> Nick was a legend in the College of Computing even as an undergrad. Why?
- dankamongmen 5y agoi am indeed a yellow jacket several times over. pa dank did not attend the university of alabama at tuscaloosa, nor any other institute of higher learning, but as anyone who knows SEC fans can tell you, attendance is not required for fandom. his roll tides were valid. alas, it's pretty hard to get it up for GT when you just got waxed by a directional middle school from illinois.
- 10GBps 5y agoNext I want to see Crysis running in a terminal. Actually that raises an interesting question. Can OpenGL work in Notcurses?
- phendrenad2 5y agoI don't see why not, software renderers exist, just point it at a "surface" made from "pixels" which are actually block characters of different colors.
- marcodiego 5y agoOne thing I once did was capture the screen and stream it. On the other side I watched it using mpv with libcaca as the output. Graphical desktop on the terminal.
- lavabiopsy 5y ago>Can OpenGL work in Notcurses? Yes, this is quite easy to do with OSMesa, or with EGL_KHR_surfaceless_context. With the latter it will be hardware accelerated too.
- zamadatix 5y agoIt's good to see a passion project that is blatantly being done just for the fun of it and sharing with 0 concern what a corporation might think.
- michael-ax 5y agofine, very fine, a new/better fb-terminal is a good thing; 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!
- tmccrary55 5y agoBlessings?
- tim-- 5y agoThat demo is _amazing_. It has to be by far one of the best uses for the terminal I have seen in a long time! Impressive what that text console can do! 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 https://www.destroyallsoftware.com/talks/a-whole-new-world
- amw-zero 5y agoIs there a demo in this link? I’m not seeing it.
- bombcar 5y agohttps://www.youtube.com/watch?v=dcjkezf1ARY https://www.youtube.com/watch?v=dcjkezf1ARY found on the main page
- floatingatoll 5y agoOr run it locally. Quality may vary based on terminal capabilities (for example, iTerm2 is sum+ rgb+ quad+ versus Terminal.app). $ brew install notcurses && notcurses-demo