[1] https://news.ycombinator.com/from?site=github.com/charmbrace...
https://terminaltrove.com/categories/tui
and another list which are terminal tool of the week where some TUIs are complex, like dolphie, kaskade, trippy or pug for example.
https://terminaltrove.com/tool-of-the-week/
https://terminaltrove.com/dolphie/
https://terminaltrove.com/kaskade/
https://github.com/asciinema/asciinema
EDIT: Looks like image generator might be from one of their own projects:
I'm talking about just distributing ANSI files.
kitty --dump-commands program-whose-output-you-want-to-inspect
You can even save the --dump-commands output as edit it and then replay it with
kitty --dump-commands program > commands.txt
kitty --replay-commands commands.txt
(Note: the "terminal animations" in github make the examples difficult to read.)
In my shell scripts I often use `tput bold` etc instead of hardcoding the sequences.
Still, nowadays people who write new terminal emulators tend to approach with "do what xterm/libvte does" attitude which is quite sensible: very few people use actual, physical terminals anymore, and the software ones are, well, are generally based on xterm or libvte (or that third library I keep forgetting).
And when was the last time terminfo has been updated anyhow? Not to mention that it lacks info about modern features such as e.g. the version of Unicode used/supported by the terminal.
Two weeks ago?
https://lists.gnu.org/archive/html/bug-ncurses/2024-11/msg00...
> misc/terminfo.src | 40 ++++++++++++++++++++++++++++++-------
Yes, historically, many terminals were not even ANSI compatible. That is why the terminfo database (and its predecessor termcap) exist; for programs to look at the TERM environment variable, use that to look up the terminal’s capabilities in terminfo, and see what the terminal can and cannot do, and then choose to output whatever sequences the terminal does support. Normally, a program uses yet another library, like ncurses, to do this, but you can do it yourself if you want to, like in a shell script or similar. Outputting raw escape codes is wrong, since the correct way is so very easy.
On the other hand, ignoring ancient terminals and simply pretending everything is color-enabled, VT-220 compatible, UTF-8 aware terminal emulator works well enough™ almost everywhere, including recent versions of Windows (which IIRC don't even have terminfo; not that it'd help since the legacy Windows console uses ioctl()-like interface instead of the escape sequences) — and is actually easy.
I.e. I would expect
python3 -c 'print("\N{GREEK SMALL LETTER BETA}")'
to just work on any terminal, as Python does the right thing for you.On a side note - VHS and mods have been super helpful to me.