How to avoid user frustration

that’s true, but some control is important, otherwise you’ll end up with a bunch of spam entries.

Because I’m so used to running pkgman update that I didn’t even remember it existed, my bad

Not really. Before this topic I had never considered “not having it in GUI” something one should file a bug report for.

For a basic user who would prolly mainly use the web browser, productivity software, file manager, and apps to handle media, yes the terminal is unnecessary.

But many Haiku users do not fit that archetype. Developers, prosumers, retrocomputing enthusiasts, etc. will all need the terminal at some point. This applies for any OS more advanced than Classic Mac OS. Even on that operating system, terminal programs existed so that certain users can access corporate or university servers/mainframes. Mac app developers certainly used a terminal of sorts, as part of the Macintosh Programmer’s Workshop. And before anyone else mentions iOS, similar sorts of apps also exist for it too.

Point being is that no operating system is fully usable for every kind of user without a CLI of sorts. To ponder if a system can be used without a terminal, more conditions need to be defined. Otherwise, the answer will ultimately be no.


We’re certainly NOT going to remove the Terminal but we do strive to make everything available from the GUI using the mouse and keyboard. Is there a specific example of something on Haiku that is only available from the command line that you’d like to be GUI accessible?


I was just trying to raise awareness, I haven’t run haiku in a while. That would change soon.

Raise awareness, Why? We already have guidelines for the gui. If you think something is wrong with them why not comment on those instead of making broad claims that we should remove core system components?


Ultimately, he just wanted to encourage people to think about the extent to which the system can be used purely on the GUI side without having to have more background knowledge. so fit for general user.

It is not a criticism of the applications and their design.

In my opinion, haiku is already very well positioned. there is enough documentation for guidelines, use of the system (more needs to be done for applications). Beside we have a knowledge base and wiki parts.

There is always a better way ;-).

There are several ways to remedy this. Everyone can contribute here. If there are no instructions for a program or game, you can lend a hand here or give suggestions.

We at the besly knowledge base are always happy to receive new instructions and ideas.


Removing the terminal takes no sense, because Haiku still a Unix-like system (just less so than Linux and BSD) under the hood. These systems simply cannot function without a shell. You can’t implement an equivalent of proper shell scripting, all shell utilities, and comprehensive debugging and logging with just a GUI.

Haiku should be usable for an average person without the terminal. Removing the terminal will not help achieve that.

I understand, what you mean, but the terminal emulators and shells should be deprecated and replaced by something more powerful. Even on *nixes. The eternal 70’s should end.

Not sure what an alternative to a command line could be, really. The way I see it is that with a command line you can go from an empty prompt to one of millions of actions just by typing a command and a few arguments. On a GUI it is always a step by step process, and inherently less efficient. CLI has a high entry requirement to learn it, compared to a very low one, or almost none, for a GUI. But I don’t know where the middle ground is between flexibility/power and ease of use.

For myself, as time goes on I find I don’t have patience for e.g. GUI file managers any more. I have to move the mouse around so far, scroll the window, hunt for things, it’s just a pain. In a command line I can list a directory, filter the files I need, take the action I need immediately. Or just run a find command to get the file. Sometimes I don’t even bother finding the path of the file I want to edit I just do:
vim `find . -name myfile`
vim ./**/myfile

I do 100% agree with the thesis of this thread - in haiku you should be able to do everything with the GUI. And if you can come up with something as flexible and powerful as a command line using some other paradigm it would be very impressive… but I have no idea how!

AIX’s SMIT/SMITTY might be such middle ground. A menu based administration helper (GUI/terminal) where you do your stuff with mouse and menus and can see what the tool composes to do that task as command line or small script or just run the output without looking longer at it.

1 Like

To come up with something different, say, a new paradigm, we need to put 70 years of progress into the rubbish bin and start anew. That’s not happening anytime soon.

Haiku, luckily, does not need the terminal to function, but it still lacks the parts to make up for an absence of the terminal.

What about gpt3 type directed AI self programming ?

Let’s be frank, the text based programing of computers is a severe bottleneck in throughput

This just seems like a slightly more integrated YaST from openSUSE:

Question is, should GUI settings in Haiku be extensive enough to fully supplant having to use the terminal or focus on a smaller subset that are likely to be used most frequently by most users?

Everyday happens. Look around here

Self-generating GUI

Perhaps a good compromise would be to follow one portion of the Amiga way which made the command-line template a parser format. That allowed a third-party application called “R” to be made that would parse the command-line template and automatically generate a generic looking GUI for that command-line utility. Of course that only gains a little because the labels generated by the command-line template were single-word flags and would only generate certain types of gadgets for each type of input needed by the utility. I’m not sure this approach would work well the second time around either.

YAB Wrapper for Command Utilities

On second-thought, just making an easy-to-use RAD tool to custom make wrappers for command-line utilities would be a better option. I started writing a YAB to C++ transpiler at one point but debugging in C++ was a PITA. Maybe I should have added features to YAB to allow it to self-host so I could write the YAB transpiler in YAB itself. That’s a slower development path though too.

1 Like

I completely agree the terminal (as in an immutable character grid that relies on convoluted escape codes and other strange behaviors) is outdated. Bash-like shells are outdated too. I would love to get rid of those forever.

But don’t throw the baby out with the bathwater; the idea of a command line, the concept of writing commands or a list of commands to do things, isn’t outdated at all. Just another way to do things. The terminal, shell, and command line are all different things that are unfortunately considered the same by most people.

There are much better ways of creating a command line interface than running bash in a terminal emulator. Sadly, we are stuck with bash running in a terminal emulator in every OS for the foreseeable future because of Unix compatibility.

1 Like

that seems like a good debate for primary menu and sub menu, primary menu gets 90% of uses cases, sub menu allows for the remaining cases.

Is the current state of development open source and available?

I always had in mind that an export to a cpp code in yab would make sense. Simply create and export a GUI so that it is helpful when developing in cpp and saves a lot of work.

Maybe others can help with the problems to complete your project. I unfortunately not because I lack the experience in cpp.

**Since yab is haiku only, such an export function yab to cpp would be advantageous for this very easy to learn and strong language. So far everyone has been put off by the fact that the code created can only be used in haiku. Other systems do not offer the possibility of API connection as in Haiku.

1 Like

Perhaps another source of inspiration for improving user experience is A/UX’s Commando, which provided GUIs for CLI applications that presented their various options in a more user-friendly way:

This was useful both for general interaction and as a learning tool for users unfamiliar with the CLI, specifically Unix tools in this case.

Commando used a database to store info about commands and their options. A modern re-implementation of this could do the same, generate from manpages, or be in Terminal add-ons for more flexibility.

Side note: Has there been any consideration for changing the default terminal shell to ZSH? It does have more extensive autocompletion support, which can help somewhat with using the Terminal.