6 ms·
TUIs run on any OS with minor patches to support quirks, GUI frameworks need a lot of work. TUIs don't need to follow any OS guidelines, cross-platform GUIs alw
by jeroenhd 2mo ago
TUIs run on any OS with minor patches to support quirks, GUI frameworks need a lot of work. TUIs don't need to follow any OS guidelines, cross-platform GUIs always look bad outside of the "main" platform.
If you're only targeting macOS/Windows/Gnome/KDE then the solution is easy: just grab a GUI control set and go ham.
Then there's remote access: you can spawn an X11 app through X forwarding and have a terrible laggy experience on Linux, you can use RemoteApps on Windows to have a good remote experience (but almost no other platform), you can use VNC to have an awful cross-platform experience, or you can use a TUI and have all the graphs and interactivity you need over a responsive, low-bandwidth connection on any combination of client+server.
- wiseowise 2mo ago> TUIs don't need to follow any OS guidelines, cross-platform GUIs always look bad outside of the "main" platform. So because TUIs look universally bad, they're better than cross-platform GUI?
- Dilettante_ 2mo ago>So because TUIs look universally bad You can't stay engaged if the menus don't bleep and bloop at you and confetti rains down on every click? That's a personal problem. A minimal UI is not automatically a bad-looking UI.
- WA 2mo agoNo, but I want to click to place the cursor in my 10 line prompt wherever I want. I want to double click to mark words. I want to use a scroll bar. I want to copy paste properly and not "23 lines pasted". I don’t want to read docs to find all keystrokes the TUI supports to achieve what I want.
- maleldil 2mo ago> not "23 lines pasted" If you mean what Claude Code does when you paste longer text, you can just press Cmd-V again to show the full text.
- catlifeonmars 2mo agoYou can handle mouse events in a TUI https://ratatui.rs/concepts/backends/mouse-capture/ https://ratatui.rs/concepts/backends/mouse-capture/
- yencabulator 2mo agoAnd I want to read proportional fonts, like just about anything except terminals already uses.
- pjmlp 2mo agoYeah, already in 1990, what an achievement. /s https://en.wikipedia.org/wiki/Turbo_Vision https://en.wikipedia.org/wiki/Turbo_Vision
- catlifeonmars 2mo agoI thought that UI looked vaguely familiar, and then I realized that the BIOS on many computers uses that design. I never really connected the dots.
- dirasieb 2mo ago>I want to click to place the cursor in my 10 line prompt wherever I want. I want to double click to mark words. I want to use a scroll bar. I want to copy paste properly and not "23 lines pasted" sounds like your terminal emulator is just crap, terminal and iterm on mac just work
- WA 2mo agoiTerm2. Doesn’t work out of the box or something, but I’ll take a look at my config.
- notpushkin 2mo ago> cross-platform GUIs always look bad outside of the "main" platform qBittorrent looks great on KDE, and would look great on macOS too if they used native icons (I’ve made a theme for that but was too lazy to install it when I was switching laptops). No idea about Gnome and Windows, but probably alright as well. So, Qt can get you a long way. But you should of course adapt your app to platform conventions and guidelines.
- pwdisswordfishq 2mo ago> I think the answer to this is probably to throw all that compatibility mess away > TUIs run on any OS with minor patches to support quirks So, which one is it?
- Almondsetat 2mo agoThose two are not contradictory statements
- embedding-shape 2mo agoMaybe not, but they do sit on opposite end of an axis looking something like: TUI that runs on any OS |----------------| TUI without any compatibility mess You really can't have both at the same time, either you have great compatibility (which will be a mess), or you don't, to varying degree of course.
- Almondsetat 2mo agoBasically any OS can install any compliant terminal emulator, meaning the cases in which you really have to patch your TUI for another OS are few and infinitely more manageable than GUIs
- Arainach 2mo agoCompliant with what? The proposal is "throw out all the compatibility and build some other kind of terminal" in which case nothing is portable.
- TylerE 2mo agoHow so? The idea is you build all the OS specific stuff into the terminal, not into the programs running INSIDE the terminal. Think Infocom Z-Machine, at the ultimate level, although obviously emulating a full on virtual CPU is overkill. In any case we can surely do better than emulating DEC hardware from 50 years ago.
- eviks 2mo ago> TUIs don't need to follow any OS guidelines, cross-platform GUIs always look bad outside of the "main" platform. TUIs look bad everywhere, so that's strictly worse
- i_am_a_peasant 2mo agoTUIs would be great if they didn't have to render all text the same size, for me that's the main win with GUIs, you have total freedom with what you can do with your pixels. I would definitely be pro minimalist unicode-character-themed GUIs for what it's worth. Where every graphical primitive is basically a unicode character, without the restriction on font size.
- leephillips 2mo agoSome terminal emulators, for example Kitty, can render text at various sizes (within the same window).
- eviks 2mo agoThat's not total pixel freedom, you're still limited to text
- psychoslave 2mo agoThere is not much difference between a TUI and a GUI once the premise is "let's start from scatch all other again for each applications". Sure then there is no guideline that comes between idea and implementation. But there is also no built-in accessibility, UX best-practices and many specificity of handling a vast experience of building something stable over a large period of time with many feedback from many different scenario.
- the__alchemist 2mo ago> TUIs run on any OS with minor patches to support quirks, GUI frameworks need a lot of work. TUIs don't need to follow any OS guidelines, cross-platform GUIs always look bad outside of the "main" platform. Have you tried to write a GUI program lately? I suspect things may have changed. I can write one using Qt, EGUI, etc (Or many other options), and it will just work on Windows, Mac, Linux/Wayland, and Linux/X. Basically, you write your application on top of a GUI framework that smooths over OS differences for you.
- zahlman 2mo ago> I can write one using Qt, EGUI, etc (Or many other options), and it will just work on Windows, Mac, Linux/Wayland, and Linux/X. This is hard to square with the continuing obsession with Electron.
- messh 2mo agoHtml has also some of these properties, targeting the browser. Don't get me wrong. I do like TUIs, they are light weight and compose very nicely with the rest of the terminal (eg tmux). Also, i generally prefer just cli commands over tuis when possible.
- zbentley 2mo agoThat ubiquity is the reason for the limitations of terminals/TUIs discussed in grandparent. Those two are not separable: they’re everywhere precisely because they target the lowest, oldest common denominator (teletype console behavior assumptions from the 1960s). I expanded on this point nearby: https://news.ycombinator.com/item?id=49400697 https://news.ycombinator.com/item?id=49400697
- fsloth 2mo ago”GUIs always look bad outside of the "main" platform.” I think this is slightly wrong in two ways. i) If you want platform native then reimplement the gui on every target platform. It’s as ”simple” as that. If you need to ship to multiple platforms then preferably you need lots of plarform specific engineering in any case. ”I just want my hobby tool” scenario likely does not require cross platform support unless there is market for it. I mean rather than offering the tool on multiple platforms it should be offered on multiple languages first, perhaps. As soon as you are not writing the tool for yourself we are talking markets and distribution. Likely most people can chill out and just implement the gui for themselves (and not even publish it in githubb). ii) cross platform quick-and-dirty way. Without screenreader support, multiple language and glyph support etc. Game ui:s look the same on all platforms. Websites look the same on all platforms. There is place and time for deep ui engineering that respects the _critical_ cross platform issues like accessibility (screen readers etc) and different languages and scripts. And then there is the situation where you want just few images to click. The latter is vastly simpler, fast and fun. But harder to convert to a professional quality gui experience. For small tools and MVPs this sounds like a fair tradeoff.
- ambigious7777 2mo agoi appreciate still having my same tools when i switch from linux to windows devices
- inigyou 2mo agoSending drawing commands to an X server is no more difficult than sending escape code sequences to a terminal. Simpler, even, because it's actually designed for that. And yet it's also more flexible. If your GUI framework of choice is limiting you, you're welcome to write one, just like you're already writing a TUI framework.