Monday, May 17, 2010

Re-Thinking the Desktop

I realize that right off the bat, that title may seem off putting. What with all the work that Gnome has been doing with Gnome-Shell, and with Ayatana tearing away at UNE and UI in general (for Ubuntu, that is), it seems more or less redundant to try and re-think anything. That is, after all, what every body else is doing.

But none the less, here I am, giving it a go.

The very first thing that comes to mind as an issue with the desktop is that you can only really do one thing at a time. Now bear with me, I'm not one of those people that thinks you need all fullscreen apps all the time. Doing one thing at a time might need two windows of Nautilus, 3 documents, a PDF, GIMP, a browser with 10 tabs, and a terminal. Doing one thing at a time involves referencing other documents, navigating, looking at sizes, researching, but all centered around your task. I certainly don't try to tag MP3's manually while I'm writing a paper. Those are two totally different things, and theres no way to do them both at once. But for plenty of things, like playing music or opening a single file, you don't need a whole new interface to open up.

Instead, there are a number of activities that shouldn't ever need a full interface, but do. For instance downloading new mail in evolution, or picking a new playlist in Rhythmbox. Now, these are things which are partially controlled in the new Ubuntu panel applets, but are still rather inconsistent. But still, the idea is present. There are some things that you want to be able to look and easily see, like if you have new messages, or what time it is, or how much battery you have left. But there are plenty of things that you can't see easily, and plenty of things that you can see easily that are of little to no use.

Menu Bars

For instance, for almost every single application on the desktop, you get a series of menus. For instance, in Nautilus, you get File, Edit, View, Go, Bookmarks, and Help. These have literally got to be the worst collection of menus ever invented. I get that these are pretty standard, but its a complete and utter idiotic interface design to use any amount of space (even if its just 10x1000) for a series of menus that put the important functions multiple clicks away, and hidden among a series of much less important functions. There is so much overlap, its absurd. Meanwhile, Chrome uses "Control the Current Page" and "Customize and Control Chrome." These options actually make sense.

Lets look at another application, the terminal. File, Edit, View, Terminal, and Help. File? What file? There is no file open. Lets click it, and I see this:

Ok, so there is no File open, but clicking it gives me Open Terminal, Open Tab, new profile, save contents, and close. You know what, those all sound like Terminal controls, not File controls. Does it really make sense to have a File menu entry for a window with absolutely no actual file open? Especially considering if I do open a file in the Terminal, the controls for the file are within the terminal, not on the menu bar.

How about this Edit menu?

Oh, ok, edit. Edit what? Uh. Well. I guess copying and pasting is editing. Selecting all is editing-ish. But wait, what? Profiles? Keyboard shortcuts? Am I editing the document or am i changing program settings? What exactly am I editing? Anything that the developers throw in here? Nautilus isn't much better with the edit menu:

The usual cut, copy, paste, select. Invert selection.... gosh, even these don't really make sense when you think about it. These aren't edit commands, these are File commands. Move, copy to, move to, move to trash... These are not editing anything at all, these are moving Files around. File management.

This is just a basic overview of what I'm sure you're all familiar with. We have these menubars that we are trained to turn to with our every need, and yet none of them actually make sense. We just go there cause we're trained to go there.

But... the menus...

Yeah, I know. They're there, they feel stuck there. But really, they make no sense for the majority of things contained within them. I'm not advocating a reorganization, bouncing things around here and there.

I say we jsut get rid of the menubars. They're stupid, they're repetitive, and with the exception of expansive apps like Gimp, they're just taking up space. Heres what I think we should do instead.

  • Pull out things that are actually pertinent to what you are doing, for one category. These include your basic save, save as, print, new window, create folder, new message, that sort of thing. Put it in a button menu, call it options or commands or something.
  • Put things like select all, move to, delete, in the context menu and not in a toolbar.
  • Everything else, view options and the preference menu launcher under a different button, called configure or something. Two square buttons for the majority of important tasks.

Then suddenly you get this:

(click through to see what I'm actually talking about. :D)

Let me draw your attention to the wrench I added, stolen from Chrome. There you get all of your save, print, new window, create, all that. Things that are actual actions, things that cause events.

Meanwhile, in the little gear bit thing, you get basically everything currently under the view menu (besides the zoom and three view options already covered in the buttons and slider of Nautilus-Elementary), the help contents and about, Backgrounds, terminal size options, all that sort of things.

The terminals 5 and Nautilus' 6 menus crushed down into two menus, along with whats in the context menu. Cleaner. Meaner. More-Sensier. (yeah, I made up a word.

What about more complex apps?

Well, with things like Gimp, theres a ton more stuff in the menus that would not be so easily crushed into two menus. But all of Gimp is a graphic Editor, so an edit menu seems... redundant. Theres better ways to sort that stuff into categories that makes more sense.

Some apps do this already. Rhythmbox, for example, has Music, Edit, View, Control, Help. But even then, control duplicates the actual interface itself, Help can be hidden in the Configure menu, as can all the edit options and view, while your import commands and new playlists in that Wrench 'Options' menu.

Uh... I hate this

Understandable. :D

But for many of the programs we use on a daily basis, what we basically have is a skin over the top of a very complex terminal system. Its just a ui to something we wouldn't otherwise understand. We do this because there are some things that make sense to be able to visualize and see easily so we can understand. So why do we then crap on that and make it frustrating again?

I don't think that this will change the world and cause everybody to put it in default Ubuntu. I really don't. But I would like to start putting work towards packaging up apps with a modded appearance and control mechanism, similar to Nautilus-Elementary. But obviously first theres work to be done in figuring out a whole lot of details. So, I challenge you to pick some applications, write down all the contents of the Menu Bar, and see what makes sense and what doesn't. Lets start making some rules, and then we can see about putting them in action.

Edit: Heres a quick mockup of GCalc


  1. +1 that menubars suck.

    I think even for complex apps like Gimp that we could kill the menubar and have two or three menubuttons. Look at what Apple is doing with iPad. Popovers ROCK. Put some damn tools in that toolbar.

  2. Hm... Well, I wrote down the menus for gcalctool, and this is what I came up with:

    What do you think?

  3. Nice idea! - I like it. Those menubars are eating space unnecessarily.

  4. Dan: Agreed. :D theres so much stuff that doesn't even need to be 2 clicks away from the user, and yet there they are taking up space in the menu, ready to be mis-clicked.

    Dieki: Perfect. Exactly what we need. Why the heck do we need a File menu for 'quit'? Thats what the stupid red x is for! The whole view menu can be better implemented in a row of a couple view buttons (even if you're not a fan :P), and putting the two "Show..." dialogues with the rest of the options. Perfect analysis.

  5. thanks evfool. Now its a matter of attracting the attention of devs to try to get it implemented...

  6. You are doing a great job here...
    I really like your aproach on design and usability.
    Great blog!

  7. You can always use F8 to hide menubars. I don't like or use menubars.


Note: Only a member of this blog may post a comment.