Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is the line between TUIs and GUIs blurring?
4 points by Oneechan69 6 months ago | hide | past | favorite | 3 comments
I've heard a lot that a benefit for using terminal software over GUI apps is that they use much less resources. And that's why its better to SSH into servers rather than have them use up resources for a display server, Quartz X11 Wayland etc.. But terminals aren't just outputting raw text, they have text and background colors per character, TUI frameworks have been made for them to essentially have GUI-like elements, like Neovim and Ranger. Things like the [Kitty Graphics Protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol/) seem to blur the lines. While I don't know the technical details (please explain if you can!), it's nice that it can render images in the terminal, but how is it different, especially the technical details and resource demand (CPU GPU RAM etc.) to display servers?! Does it work without a display server running on the client, like a "raw" linux terminal where the desktop environment isn't loaded?

I haven't look at this much either but there's also [kui.nvim](https://github.com/romgrk/kui.nvim), a terminal GUI framework built on-top of Kitty Graphics and it seems to escape the TUI constraint of only being able to visualize things with text characters, being able to draw elements of any length. There's a [comment](https://new.reddit.com/r/neovim/comments/110znd4/comment/j8f6pb6/?utm_source=share&utm_medium=web2x&context=3) on this [Reddit post showcasing kui.nvim](https://new.reddit.com/r/neovim/comments/110znd4/kuinvim_an_experiment_into_a_real_graphical/) discussing the benefits of a terminal are that it's not a GUI. But if you were to use this, then how much would it be different from just using Obsidian with its various plugins along with with [Obisidian-bridge.nvim](https://github.com/oflisback/obsidian-bridge.nvim)?

So what makes a terminal a terminal, different from GUIs and full desktop environments? Is it the low resource usage, is it still low with Kitty Graphics and kui.nvim? Is it the keyboard-centric interaction for higher efficiency? Is it because of the other benefits of commands environments, like unix stdin and stdout piping? If you want full blown GUIs in a terminal environment then how is it much different than using a GUI app with full keyboard navigation and text inputs? How do you feel about rendering full GUI graphics in a terminal?

Personally I like the idea of rendering graphics in a terminal environment is it would be overall better than using GUI apps for the reasons listed above, but I'm feeling reluctant on that.




Make a TUI look pretty enough, throw in enough features from a GUI, and it becomes a GUI (sort of). No reason why one couldn't mix & match features as desired.

Compared to a commandline, both TUIs & GUIs add discoverability: no need to remember commands or -switches, just navigate through menus & see what's there.

I think all these are best regarded as different 'views' on the same underlying machinery. What works best depends on user preference / workflows.

Resource requirements obviously depend on the feature set & implementation.


Yes, but not for the reason you think. In the very near future, most software will have a text input box for an LLM or chat interface. These will be an alternate way of controlling the UI.

So instead of clicking through 5 menus to find out when your last deposit was at the bank's website, for example, you could type, "What was my last deposit?" into a GPT-style box. The LLM would the perform the same actions as the GUI.

I'm convinced this is the future norm for human-computer interaction. It will be both GUI and natural language text.


TUIs could have images but that not the norm. People that do TUIs are probably more interested in text. Definitely interested in reducing mouse usage

* It works over SSH without any extra configuration * Some servers don't have xorg installed * Maybe save laptop battery not running a full DE

Most GUIs have evolved to be a bloated web render app. So TUIs are probably a statement that it won't be, and definitely snappier




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: