It's probably time to start talking a bit more about what was discussed during the User Experience Hackfest that happened two weeks ago in Boston. I won't repeat what I previously wrote; a short summary was that it was wonderful :-) However, I'd like to get people thinking a bit about everything that was discussed: hopefully, others attendants will blog about various things, send mails, or even write code. Here's my contribution!

So, during the hackfest, I mainly took part to a group working on what can be called a proposal for an updated desktop shell. It's quite a big challenge to change a core part of the user interaction with the computer, but there's at least no harm in exploring various ways and in seeing if those make sense. So we tried to forget the current GNOME and see what we thought would make sense. In this post, I'll try to give a general overview and highlight the big items, but the wiki page probably has more details about all this, so it's worth a read (although you should not consider it as a complete specification; more work is needed!). Many thanks to Neil for working on the mockups, and of course to everybody who contributed to the current result (I'm not going to start naming people since I'll forget a few of them ;-)).

We started with a few observations (there were way more things than just those few items, but this should help you understand the rationale):

  • finding the window you want to find can be too difficult. Most people are using to the window list, but it takes quite some space and finding a window in this list needs focus from the user when you have more than 4 windows, eg.
  • workspaces are powerful but not intuitive. Power users use them, but it's just black voodoo for most users. It started being useful for normal people with the famous cube, though.
  • launching applications is too hard. The applications menu is just not well adapted for that: it takes a long time to find one item. Some people use launchers (but how do I add a launcher?), some use the run dialog, or GNOME Do, etc.
  • the current panel is okay-ish, but it's really not that great. You can have applets, but most people don't add applets (because they don't know how to add applets). You can move the panels on your desktop. You can even have a panel in the middle of the screen. Yeah. Useful.

I'm sure people will agree on some of those items, and disagree on others, but keep in mind that it's a short summary. For example, I could go on for a few hours on the topic of why the current panel is broken, if you're interested ;-) So, the conclusion was that we're quite good right now, but we could do better by changing things.

We played with a few ideas, proposed various things, stepped back, changed things again, etc. to reach the current mockups on the wiki page. I think there are a few core ideas behind this proposal, and here's an attempt to summarize them:

  • restrict ourselves to one static panel. Most people stay with the default panel configuration, and having two panels is eating a lot of screen space. Also, it's good to have something we can rely on: having two hot corners makes it possible to decide how we want to use those corners, and therefore it had an influence on the design of all this. One corner would be used to start the activities overlay mode (see below) and the other one would be used to control your presence on this computer (more details on this in a later post, I guess). Then we'd have status indicators for various things, like battery, network, weather, etc.
  • move applets out of this panel. Yes, we specifically try to avoid putting applets in there (although it can make sense to be able to add other status indicators, which I'd consider to be not applets). The current idea is to have a sidebar which would contain the useful stuff the user wants to have. We considered having a special mode like Dashboard, or desktop applets, but there were mixed feelings for this.
  • put forward the notion of activities. If you look at the current usage of workspaces, you can find out that most people use them to make it easy to switch between various mental contexts. And actually, nearly everybody using a computer has to switch between mental contexts, like read mail, browse the web, do my work, etc. The way we use workspaces, though, is static: you configure your desktop to have 8 workspaces; but it doesn't mean you use all of them right now. The goal here would be to focus on what the user is doing, on its activities. If the user wants to start a new activity which is different from what he was doing before, well, then let's make it easy to create this new activity. The goal is to have the computer adapt to the mental context of the user, and not vice versa.
  • having a special overlay mode for activities. This is probably the highest visible change here. This is where people control their activities: switching between activities, switching between windows in a activity, creating a new activity, launching a new application in a activity, opening a document, etc. Oh, did you notice the launching a new application part of the previous sentence? It's quite important: that means we can kill the applications menu (again, more details on this in a later post). To switch between activities or windows inside a given activities, we're thinking of using some Exposé-like effect: no need to think about the name of what you're looking for, but just visually find it. This overlay mode aims to be the place where the user goes when he stop focusing on a specific task and wants to do something else; a notable case is when the user logs in and wants to start using the computer. The fact that this mode would be a central place is what makes the notion of activities discoverable to the user.

I guess all this can sound a bit frightening, especially since you might think it breaks your habits as a user. But when you think hard about it, it's indeed different from what we have right now in various ways, but it also looks familiar. And hopefully, it looks more natural too. And that's the whole point: we don't want to break stuff because we like to break stuff, but because we think we can offer something better.

Okay, that's already a lot of information to digest (probably hard to digest, since I guess I'm not explaining all this that well...), and I didn't even go into details -- I actually skipped a few things (the notification center, eg). I'll try to write more details about some of those core ideas in the next few days, if nobody beats me to it. I'm convinced that we should start prototyping those ideas so we can play with them, and see what feels good and what feels wrong. It will need testing. We will make errors. And maybe it's a dead-end. But many people really liked this and I believe we reached consensus during the hackfest that we wanted to see this in action.

Oh, and since it doesn't make sense to have all this text without an image, here's a mockup of the overlay mode for activities, with the panel at the top (there's only one activity/workspace in this mockup, so it's probably not perfect to get the whole idea):

Overlay mode for activities