Hacker News new | ask | show | jobs
by ndiddy 225 days ago
Well-designed GUIs can be fully keyboard operated, where the mouse-driven interface only serves as a way to educate the user about which functionality is available. I'll use Tera Term (a serial terminal emulator) as an example. If you want to start a serial XMODEM transfer, you can figure out how to do it just by clicking around the user interface. You click on "File", then "Transfer", then "XMODEM", then "Send". Once you do it a few times, you remember the layout of the menus, and can start navigating solely by keyboard. Instead of "breaking your flow" by having to reach for the mouse, you just hold down Alt and type "FTXS". This is much faster, and you learned how to do it entirely from just using the program and observing which letters are underlined in the menus. There's no need to look at a manual or help page.
1 comments

A well-designed TUI and GUI have great keyboard nav, discoverability, UX, and all. The question is more about what you want for the 99% of UIs that aren't well-designed nor polished, and what kind of worst-case you want to deal with.

By default, TUIs have bad discoverability unless the developer puts in the effort. But at least you have keyboard navigation and run in a terminal.

By default, GUIs have bad keybindings unless the developer puts in the effort. In the worst case they aren't even kb navigable. But at least they tend to be discoverable.