Glass Elevator, Idea #1: Extensions based UI

(x-posted to the Glass Elevator mailing list)

Hi, I’m new to the Haiku project. I’m an old school fan of BeOS, and I’m really excited about the Haiku project. I’m not enough of a hacker to really jump in at this point, but what I’m hoping is to get involved with R2 once R1 has been completed. I’d really like to see Haiku do amazing things in terms of performance and user interface, and it’d be great to see a user-friendly open source desktop oriented operating system.

One thing I’d like to see is a very minimalistic default user interface, which allows for extensions to customize the look and feel. This draws influence from Firefox, but also from Google and Apple’s approach to aesthetics and UI.

What Google and Apple (especially with the iPod) have taught us is that it’s important to do a few things really well, instead of being able to do a hundred things half-way. Firefox takes this idea, but adds the idea that the user can install their own extensions which allow as much customization and complexity as the user wants.

So why not take this perspective when it comes to the UI for Haiku/R2? When you have a fresh install, the UI is very minimalistic. You have the very basics necessary to function as a desktop operating system: Windows, icons, menus, and pointing devices. But what’s built in is a good extensions architecture so that any aspect of the UI can be manipulated with extensions.

This way, power users could customize their experience as much as Linux can be customized, while the novice users are still presented with a simple, easy to use interface. Couple this with a really slick extensions manager, and an easy and accessible website for Haiku extensions.

This also frees the Haiku developers from having to code many features themselves, the expanded features can be available as extensions, whereas the Haiku UI developers really only need to focus on the bare minimum features and the extensions architecture.

Here’s an example. An idea I’ve always had is to combine the folder view of the filesystem with the command line. That way, you can have the visual advantages of a GUI with the speed of never having to take your fingers away from the keyboard. Here’s a mockup example:

Now, from a UI standpoint this is a really bad idea, hitting a new user with this blank bar below their folder with no explanation of what it does. Also, from a development standpoint, this becomes yet another set of features that the Haiku team has to maintain.

Yet, if this is implemented as an extension, then we don’t have to worry about either of those problems. The novice user still gets a clean UI without confusing options, the Haiku developers can focus on the main nuts and bolts of the OS, and the power user such as myself can add this extension and still be able to access the command line from the GUI.

I’m a big fan of clean user interface design, and I tend to think that’s where the big innovation in the next couple years is going to come from. Haiku actually has a lot of opportunity to grow, and I’m really excited about the possibilities. We have all these dual (or even quad) core CPU’s coming out in the near future, and no OS is capable of taking advantage of them quite like BeOS/Haiku can. I really think we can push Haiku past BeOS’ roots and into the kind of innovative space that usually only Apple can occupy.

Thoughts, criticisms, praise, and opinions always appreciated.

Michael Chisari


I like the idea of “Extension” , some people like to have the weather, stock quote, mouse gesture, search bar, etc… but it should not be available as default.
We all agree to have an interface clean and elegant :slight_smile:

I love this idea. Sorta like the desktop widgets in Confabulator, OSX and Vista, it’s a relatively easy way to extend the desktop.

Plus, if somebody writes a killer extension, maybe it could be rewritten in C++ and integrated into the OS? It’s an excellent prototyping method… write something quick and dirty, see how people like it, and if it’s a must have extension it could be merged into the OS.