Top
Best
New

Posted by rickcarlino 6 days ago

Why TUIs are back(wiki.alcidesfonseca.com)
422 points | 420 commentspage 4
nickjj 6 days ago|
I do like CLI tools and TUIs but in the article it mentions Gnome style apps don't fit the look. That sounds like a limitation of Omarchy.

It's not too bad to theme GTK apps and have them all look a consistent way. For example I use Tokyonight Moon and Gruvbox and they both have GTK themes that look great for Firefox, Thunar, GIMP, LibreOffice and more. I don't use Omarchy but here's a few screenshots https://x.com/nickjanetakis/status/2037125261657883061/photo....

Nothing fancy was done on my end, just installed the specific GTK themes. They even support live reloading because GTK's tooling supports it, my dotfiles at https://github.com/nickjj/dotfiles handle all of it for you. I still prefer TUIs but you can have nice looking GUI apps for when you want them.

d3Xt3r 6 days ago|
Those apps you mentioned are not your typical modern GTK4/libadwaita apps, so naturally you can theme them. It's the GTK4 apps - and ones which use libadwaita specifically - that cause grief.

- Firefox: Uses its own custom rendering engine but interfaces with GTK3. It respects standard GTK3 themes.

- Thunar: Uses GTK3

- GIMP: Since v3.0, they now use GTK3

- LibreOffice: Uses its own visual framework (VCL) but has a GTK3 plugin to draw its window frame and menus, and it also respects the system theme.

None of these use libadwaita, let alone GTK4, so they're not good examples unfortunately.

nickjj 6 days ago||
> so they're not good examples unfortunately

They're some of the most popular GTK apps available. They seems like a good example to me.

The themes I'm using are compatible with GTK4 apps too.

I use niri which suggests installing xdg-desktop-portal-gnome which comes with Nautilus which is a GTK4 app. It's perfectly themed just like the GTK3 apps.

shevy-java 6 days ago||
One huge advantage that the commandline + TUIs have is ... speed.

I get more things done, in most cases, than via a GUI. In a way a TUI is a GUI of course, but with the focus on keyboard use and inputting instructions/commands. Most GUIs seem to be centered around keyboard AND mouse and then try to make things convenient here for those operations, such as drag-and-drop via the mouse.

TacticalCoder 6 days ago||
I've got a bit of a different on it... It's because TUIs do lend themselves better to automation (it's been mentioned in the thread) and, most importantly, it's because there's less cognitive dissonance between a TUI and how it typically operates and... The way AIs are using command line tools / the terminal (or a REPL, for those using agents hooked to a REPL).

In a way AI agents are validating what us old-timers always knew: the CLI and TUIs is the most powerful way. And AI tools didn't choose the most common dev environment: devs using fat IDEs (and btw I was already using IntelliJ IDEA back when some people were still arguing NetBeans was better than IntelliJ) are way more common than those piping Unix commands to achieve even simple tasks. Instead AI tools did choose the most powerful way to work: and that's piping terminal commands and SSH/tmux/TUIs.

When the tool itself, like Claude Code CLI, is immediately showing the outputs of piped Unix commands and allowing to run commands from a prompt and is, itself, a TUI, it's validating that it's an extremely powerful way to work.

A Claude Code CLI (or similar) TUI in a tmux session is something quite powerful.

Then you combine that with the fact that techs like LSP and tree-sitter did at least partially commodotize the IDE and suddenly TUIs (or things very close to it, like GUI Emacs: which can do graphics but is still mostly used as a TUI tool) do look very appealing.

Magit is considered by many --even non Emacs user-- as the best Git interface ever. It's text, text and more text.

My life is terminals (text), Git and Magit (text), Emacs (GUI but basically text), SSH (text), tmux (text), many text things I forgot and now TUI harnesses.

If you're modelizing in Blender or editing movies or creating movies, a GUI makes sense. But if you write code, which is text, all you need is text, text and more text.

TUIs are making a comeback because it is all text and AI agents are proof of that.

Ekaros 6 days ago||
I think well made GUI will always be superior to TUI. And have all the same possibilities and more. But it is also very sad that now decades into this computing thing we do not have any accepted good ways to make GUIs. Or at least widespread enough ways.
perarneng 6 days ago||
Two advantages: - Deliver apps over remote - Superfast keyboard interaction (forced) One big disadvantages: - Limited graphics and advanced UI component support

I would say the optimal UI is a Keyboard driven normal Desktop app. An app that can take full advantage of graphics elements of a desktop app but is lightning fast to interact with thanks to that it's keyboard driven. Very few people build apps like that though. Sure there are keyboard hints in many apps but they are usually not 100% guaranteed to cover all cases and are sometimes an afterthought.

Asooka 6 days ago||
I kind of wish we had HTML but for GUI. Imagine if you had a "gui" flag in terminfo and you could send an escape sequence on stdout after which you could send out screen updates as a stripped down form of HTML on stdout and receive events on stdin. I mean something that can describe the simplest bog standard Windows 95 application with a menu bar, side bar, dialogs, buttons, and proportional text. Otherwise we could offer a GUI for applications over SSH by having the terminal open a local TCP socket connected to stdin/out and launch the user's browser, implementing the most barebones CGI.
danpalmer 6 days ago|
HTML does describe GUIs though. Browsers are engines that turn a text description of a GUI into a rendered GUI.

I get your point, it does feel like there's something different, but I'd suggest that there is no black and white line, instead there's a spectrum, with fully native local UI at one end and fully declarative remote GUI at the other end. HTML and the web exist somewhere towards the latter.

There have been many attempts at points all the way along that line though, and every point comes with trade-offs. Performance degrades, OS-native components are eschewed, programming gets higher level, etc.

stephschie 6 days ago||
Am I missing something: "[TUIs are] easy to automate". What am I not seeing or know about? I had to go crazy mad routes of automating TUIs with `tmux` just to get to some repeatable process.
Dwedit 6 days ago||
We need lightweight HTML/JavaScript applications that aren't an entire web browser. You already have a web browser installed, you shouldn't need yet another copy of Chromium to run some HTML/JS files. Because browser makers cripple HTML files run from your own computer (can't fetch any files, even from the same directory), you are forced to start a web server just to run HTML and JS files from your own hard drive.

If you have python installed, you can start a web server with a couple lines of shell script. Is there any really good truly lightweight webserver? (Something under 256KB)

PunchyHamster 6 days ago||
No we don't. Browsers are wrong abstraction for GUIs
jbreckmckye 6 days ago||
Take a look at Wails, Neutrino, etc.
nout 6 days ago||
I think Midnight Commander is still the most advanced TUI there is. It has so many hidden capabilities that you may not even know about. You can be connected over ssh to another computer, while browsing the inside of a compressed zip file and previewing the content of the file inside of it . If you enable lynx motion and case insensitive - you are navigating across folders so much faster than just trying to "cd" and "ls"... It's impressive that this category of file managers has worked the same way for more than 40 years - the same shortcuts, etc.
hilti 6 days ago|
I totally agree with the author that Windows GUIs and MacOS GUIs are getting worse with every iteration. For my own side project I used ImGUI and it's working great for my purpose.

It's by far not as beautiful rendered as the native OS layers, but easy to navigate and a good foundation for cross platform GUI development. And I got it even approved for the MacOS app store. Here's my write up: https://marchildmann.com/blog/imgui-mac-app-store/

More comments...