Ratatui
github.com
github.com
Or the various Clipper based TUI for business data entry, as another example.
Since they are catching up with the past, they should improve upon it, not just revisit it.
business data entry seems like something that probably requires an experienced user running the application to show what's good and bad about it
my own 'baseline to beat' is fractint, which is pretty much unchanged in xfractint, which you can install from apt on debian. you just have to imagine it running fullscreen on a svga
In undergrad, I worked nights in a warehouse where most things were managed by a very complicated TUI program.
The learning curve was quite steep. What someone could do after 6 months of using it was completely different to what a beginner without a trainer could do. You wouldn't be able to see what is good about it by just setting it up on your own computer and playing with it (and of course you probably don't have a busy warehouse to manage).
if so, that's news to me
But by and large converging on a singular CUA/MDI interface from Mac OS, Windows, IBM, Motif, QBasic, and TVision, in the late 80s.
While not everyone got there 100% it did help tremendously that one could sit at a Mac/Win/Dos PC, Unix Workstation, or IBM mainframe and understand the application level interface immediately.
We're sadly losing that as "smart" people decide to hide things from "dumb" people in terms of interface design.
- spend an hour comparing recent turbovision-like libraries. spend twenty minutes building one. spend two hours working through the tutorial. spend sixteen hours building a new application using the library. use it. get a feeling for what an application using the library written in a weekend by someone with no experience is like. (this is my understanding of the alternative you're suggesting)
- spend eight minutes watching a video of a domain expert using a user interface built in turbovision by programmers experienced in turbovision, who refined that user interface over years. (this is what i was asking for)
which one do you think provides more insights into the textual user interface design space
which one provides more insights per minute
TV is a classic interface in every sense of the word—it isn't pushing boundaries as perhaps you are looking for.
to me this seems surprisingly discourteous
what do you hope to accomplish by such an abrasive interaction style
Though I see the grandparent of this post reads more passive-aggressive than I was intending when I wrote it.
Mouse events are supported by the underlying backend libraries (e.g. crossterm). There's an example custom widget that shows how to handle these in Ratatui at https://github.com/ratatui-org/ratatui/blob/f767ea7d3766887c...
Note the code is fairly manual as Ratatui doesn't provide any abstractions over the input side of UIs - just the output. (yet?)
[1]: https://github.com/ratatui-org/ratatui/tree/main/examples#cu...
[2]: https://crates.io/crates/ratatui-image
Compared to TurboVision, Ratatui has a lot of missing things:
- Containers
- Dialog types (I'm working on this in https://github.com/joshka/tui-prompts)
- Higher order combinations of widgets (e.g. combine the scrollbar and paragraph)
- Menus
- Any event system (apps bring their own - we just handle display)
- etc.
- There's lots of things in TV that are provided as external crates (like editors, treeview, etc.)
The main thing is that Ratatui is at least right now, just the display side of things. Things to do with events or application shell aren't built-in. This somewhat stems from the immediate vs retained mode approach to the library, but this may change in the future.
Because it did this on flicker-free(for the day) Hercules/MDA monochrome graphics.
I've experienced this 1st-hand while snobbishly commenting on that textmode stuff, while seeing friends dads working in their home-office, or sometimes in the living room on 'luggables' or early laptops, while myself enjoyed an ATARI-ST at the time.
They shut me up rather good. Wizards.
We use Charm's VHS for scripting the generation of images for all our examples, so definitely some thanks to distribute there in addition to the inspo.
pass
People have thrown out decades of UX research and engineering out of the window because it isn't cool anymore. Makes me sick.
Most people don’t want to browse the web with a keyboard.
Traffic to many websites primarily comes from mobile devices with touchscreens.
It has nothing to do with being “cool”. Terminal interfaces are great for those of us who spend a lot of time attached to the keyboard, but most people don’t operate like that.
You can easily add mouse support for the equivalent of a TUI.
Unlike CLIs (and shells) which requires learning a language and memorizing, TUIs give you relevant options.
> most people don’t operate like that
I'm convinced that if more UIs were simpler state machines, computers would be easier to use for non-programmers.
Site-specific keyboard shortcuts are a thing, they're important for accessibility. Unfortunately most sites either don't support them or do a poor job of documenting that support in a way that can be surfaced by users.
I worry that we've taken the TTY, a foundational accessibility device, and found a way to slap an inaccessible technology layer on top of it.
That said, I suspect that the right modality for accessibile command line apps is repls / cli apps rather than TUI apps.
Ratatui is a delight to work with. It uses immediate mode rendering [3] which feels very intuitive compared to other TUI frameworks.
[1] https://github.com/integrated-reasoning/napali [2] https://reason.ing [3] https://ratatui.rs/concepts/rendering/
Having said that, SSH apps are very ergonomic for the demo on this site. We have been able to build a lot of cool features on top of SSH and Charm.
We are working on a static hosting site that provides a zero install CLI. It’s sick and everyone is going to want to use it. https://pgs.sh
I just wanted to add that we are welcoming contributions, so if you are interested please join us on GitHub for more discussions, feature requests or bug reports.
If you've built something cool with Ratatui, we'd love to hear about it on Discord or make it part of our showcase pages.
And if you are wondering what Ratatui is, check out our (fairly new) website for tutorials for getting started: https://ratatui.rs/
Happy to answer any questions here too!
The things we work on when we are bored…
- https://github.com/sxyazi/yazi
- https://github.com/TaKO8Ki/gobang
- https://github.com/nomadiz/edma
Perhaps the intuitive crate would make a good abstraction on top of Ratatui?
There's also https://crates.io/crates/tui-react
That was the result of wanting to do something to celebrate PR 500[1] and being repeatedly nerd-sniped by one of the other maintainers a while back. The source code for the demo[2] is in the repo btw.
[1]: https://github.com/ratatui-org/ratatui/pull/500
[2]: https://github.com/ratatui-org/ratatui/tree/main/examples/de...
should try ratatui for glicol-cli at some point.
you can have a look on how I use tui for music live coding: