With Intrepid on track to hit the wires today I thought I’d blog a little on the process we followed in designing the new user switcher, presence manager and session management experience, and lessons learned along the way. Ted has been blogging about the work he did, and it’s been mentioned in a couple of different forums (briefly earning the memorable title “the new hotness”), but since it’s one of the first pieces of work to go through the user experience design process within Canonical I thought it would be interesting to write it up.

Here is a screenshot of the work itself in action:

New FUSA applet allows you to manage your presence setting, as well as switch to a guest or other user, and logout

New FUSA applet allows you to mange your presence setting, as well as switch to a guest or other user, and logout

In one of the first user experience sessions, we looked in more detail at the way people “stop working”. We thought it interesting to try and group those actions together in a way which would feel natural to users.

We have already done some work in Ubuntu around this – for a long time we have had a button in the top-right corner of the panel which brought up a system modal dialog that gave you the usual “end your session” options of logout, restart, shutdown, hibernate, suspend and switch user. That patch was always a bit controversial and had not been accepted upstream, so we looked at ways to solve the problem differently.

We decided to use the top-right location, because it’s one of the key places in the screen that’s quick and easy to get to (you can throw your mouse into a corner of the screen very easily and accurately) and because there was a strong precedent in the old Ubuntu logout button.

One key insight was that we wanted to make “switching user” less an exercise in guesswork and more direct – we wanted to let people switch directly to the specific user they were interested in rather than have an intermediate step where they login as that other user. So we started with the Fast User Switcher applet, or FUSA, as a base fr the design. Another key idea that emerged was that we wanted to integrate the “presence setting” into the same menu, because “going offline” or “I’m busy” are similar state-of-mind-and-work decisions to “log me off the system” or “shut down”.

Menu order
We discussed at length the right order for the menu items. On the one hand, putting the “other users” at the top of the menu would mean that all the user names – yours and the ones you can switch to – would appear “in the same place” at the top of the menu. On the other, we strongly felt that things that would be used more casually and more easily should be at the top. In the end we settled on putting the presence management options at the top (Available, Away, Busy, Offline). Right next to those (in the same set) we put the “Lock screen” option, because it feels like a presence setting more than a session management setting – you are saying “Away” more than anything else.

Ted did a lot of work to make the presence menu elements work with both Pidgin and Empathy because there was some uncertainty as to which would be used by default in the release. Since it all uses dbus, it should be straightforward to make it work with KDE IM clients too.

We then put the user switching options – including the Guest Session which is a cool new feature in Intrepid that as been widely blogged (check out the YouTube demo) and which uses AppArmor to enforce security.

And finally, the session termination options – log out, suspend, hibernate, restart and shutdown are at the bottom of the menu, because you’re only ever likely to use them once in a session, by definition!

The design of the menu is deliberately clean. We use very simple colours and shapes for the presence indicators, and replicate those colours and shapes in the actual GNOME panel so that you can see at a glance what your current presence setting is. Ted had to jump through some hoops, I think, to get the presence icons in the menu to line up with the current-presence-status indicator in the panel applet, but it worked out quite nicely. There’s some additional work to tighten up the layout which didn’t make it in time for the release but which might come in as a stable release update (SRU) or in Jaunty.

We decided not to put icons into the menu for each of the different statuses. Our design ethic is to aim for cleaner, less cluttered layouts with fewer icons and better choice of text. A couple of people have said that the menu looks “sparse” or “bare” but I think it sets the right direction and we’ll be continuing with this approach as we touch other parts of the system.

This work was discussed at UDS in Prague with a number of members of the GNOME community. I was also very glad to see that there’s a lot of support for a tighter, simpler panel at the GNOME hackfest, an idea that we’ve championed. The FUSA applet itself is going through a bit of a transformation upstream as it’s been merged into the new GDM codebase and the old code – on which our work is based – is more or less EOL’d. But we’ll figure out how to update this work for Jaunty and hopefully it will be easier to get it upstreamed at that point.

In Jaunty, we’ll likely do some more work on the GNOME panel, building on the GNOME user experience discussions. There was a lot of discussion about locking down the panel more tightly, which we may pursue.

Integration into Ubuntu
We realised rather late in the Ubuntu cycle that we hadn’t thought much about packaging. The Ubuntu team had kindly offered to help package and integrate the applet but we definitely learned the value of getting the packaging done earlier rather than later. We had the applet in a PPA for testing between developers fairly early, but we underestimated the difference between that and actual integration into the release.

The Ubuntu team rallied to the cause and helped to smooth the upgrade process for new users, so that we can try to get everyone onto the same footing when they start out with Intrepid whether as a new install or an upgrade. There are some challenges there, because the panel is so customisable, and we had to think hard about how we could ensure there was a consistent experience for something as important as logging out or shutting down while at the same time trying not to stomp on the preferences of folks who have customised their panels. Similarly, we were concerned that people who run different versions of Ubuntu, or different distributions entirely, with the same home directory, would have problems if those other OS’s didn’t have the same version of FUSA – we weren’t really able to address that satisfactorily.

We also realised (DOH!) that we hadn’t thought all the way through the process of integration, because we hadn’t figured out what to do with the old System menu options. It turned out that those were in a state of flux, with the Ubuntu folks having to choose between the current GNOME default which everyone said would change, the patches for the likely NEXT GNOME approach, and the old Ubuntu approach. Ted whipped up some patches to make the GNOME panel more dynamic with its menus, so that we could remove the System menu logout options when people have the same menu in the FUSA applet, but that landed too late for inclusion into Intrepid final.

All in all, I think it’s a neat piece of work and hope other distro’s find it useful too. It’s just a teaser of the work we plan to do around the desktop experience. I’m looking forward to seeing everyone at UDS Jaunty in Mountain View in December, when we can talk about the next round! Thanks and well done to Ted, Martin, Scott, Sebastien and everyone else who helped to make this a reality.

Well done to Team Ubuntu (thousands of people across Ubuntu, Debian and upstreams) who make the magic in 8.10 possible. Happy Release Day everyone!

112 Responses to “Ibex design: user switching, presence and session termination”

  1. kikl Says:

    Hi Mark,

    I’m a long time windows user and only recently turned into a ubuntu-fan. Windows-Vista and malware made me turn to ubuntu as an alternative. It turns out that ubuntu as an operating system is far better than windows. Keep up the great work!

    The greatest obstacle? Driver-Support! In my case for printers and WLAN. I got it fixed with the help of the ubuntu-community, but Mom and Dad wouldn’t have. This is not your fault, I know, but it’s definitely the greatest problem.

    Once everything is running smoothly, then ubuntu beats the … out of windows in terms of usability.

    O.K. Intrepid Ibex. and the “switch users or shutdown” icon. Well, I think this tool just does too many things at the same time. If your running pidgin messenger, it indicates,whether you’re online, offline busy or away. That’s a neat idea and it is well implemented. I like the ikons used for indicating this. But I think, this should be a separate icon in the panel bar.

    At the same time the button provides fields for log out, suspend, hibernate, restart or shut down. Why? That’s not necessary, because you’ve got those features already implemented in the shut down button and the last points of the system menue. Then the default picture next to your name is the same picture used for “log out”, but the button provides many more features. That’s just confusing, because you expect every ikon to stand for one set features alone. The shut down button uses symbols for shut down, restart, suspend or hybernate, which are missing altogether in the new menu of the “switch user” button, which brings me to the last point.

    You can switch users in particular switch to a guest account. Now that’s a great feature and you should keep it. But I really don’t think that these features should be lumped together in the way it has been done. The logout button in the system menu already features a “switch user” button. This is where I think the possibility of switching to a guest user should be implemented.

    These are all minor issues, but once the whole product gets a polished and consistent look and feel, then ubuntu should do the next step. Overtake MAC OS X in terms of usability.

    Keep up the great work!



  2. Sara Says:

    Mark, could you direct me with how to get the update to FUSA that disables the shutdown options from showing in the Gnome menu? I really prefer this new option; I have it on the computer I upgraded to Ubuntu a bit earlier, but on the computer I recently installed Ubuntu on, the update hasn’t come yet (and I have all forms of update enabled, backports, intrepid-proposed…). I find it mildly aesthetically annoying (the shutdown options in both places). Thanks!

    By the way, I’ve told my whole family about Ubuntu, and everyone is very enthusiastic about it. We are humbled by your example of making such a good operating system available for free. I wish you and the Ubuntu team and all of the volunteers (I’d hope to one day become one!), the best wishes.


  3. Sara Says:

    Ah, I meant on the computer I upgraded to Ubuntu *Intrepid*. Sorry if that wasn’t clear.

  4. Sara Says:

    I was actually able to fix my issue with the GConf Editor, but thanks nonetheless! Best wishes!


  5. Joe "Floid" Kanowitz Says:

    Another “Hi Mark,” 🙂

    UI is a complicated subject. I don’t know if I’ll ever finish condensing my thoughts or suggestions, but in the meantime, can I draw your attention to my suggestion for a “Knowledge Base” filed as a ‘bug’ against Launchpad at https://bugs.launchpad.net/launchpad/+bug/306378 ?

    No interface is truly “intuitive,” thus every interface benefits from documentation. Right now there is low selection pressure against “bad” (or often, just plain screwy) advice in the broader community. This is very laissez faire, and it’s nice to see people trying to help each other, but it leads to a great duplication of effort — and of course confusion over the intents of the project and its developers. Producing one “canonical,” yet still evolving, source of information would improve the quality of same greatly.

    In theory a wiki can work for this, but I don’t see them working too well for Ubuntu, since the union of “people who know something” and “people who [can be troubled to] have write access” is too small. Also, since everyone has to go to Launchpad to complain (bugs), it would make sense to catch those people while they’re there and get them to contribute.


  6. Matt Says:

    Hey, I like the presence switch/etc and how it integrates with Pidgin.

    However, it doesn’t integrate that well when you have 2 separate x-servers running for dual display (since twinview doesn’t work with gaming, etc).

    Kinda glitches a bit with that.

    Just a fyi 🙂

  7. Ubuntu 8.10 Review « ARSHUM’s New Stuff Says:

    […] Fast User Switch Applet (FUSA) 而家整到同 pidgin combine 埋一齊 轉 status 都容易d 但個 interface 仲係好簡陋 […]

  8. Pascal Meunier Says:

    Integrating pidgin to the logout/switch user menu is an incredibly ill-thought, annoying and intrusive idea. There’s not even an option to turn this off. Pidgin is an UNTRUSTED application. I really don’t like having buggy applications integrate with the OS GUI. The OS’s job is to protect us and protect other applications from buggy applications, and keep them separate. A UI that integrates commands for the OS and untrusted applications together is a violation of this principle. Please keep them separated!

  9. Gratamente sorprendido « Sembrando Realidades Says:

    […] el apt-get en las punta de mis dedos ;-). Otro dos detalles muy lindos son el nuevo control para cambiar de usuario, modificar tu presencia en IMs y cierre de la session y el nuevo, para mi, icono de eject que aparece al lado de cada dispositivo removible (pendrives, […]

  10. Skype API Plugin for Pidgin « nEws vom ConsEbt team Says:

    […] Plugin for Pidgin I think it was one of the first things I thought about when I was reading Mark’s write up about Ibex design – will this FUSA (Fast User Switch Application) work with Skype as well? I know Skype is not open […]

  11. Simonas Says:

    Hello Mark,
    I love that idea, thats probably was the major reason why i upgraded to ubuntu 8.10. in old applet when i clicked quit i needed to wait few seconds (probably because of bad ati drivers), but now that problem gone! anyway i switched to arch linux now, because it works faster on my machine, but i miss this feature? do you have source for your applet? Thank you.

  12. Lee's Blog Says:

    GNOME’s User-Switching Applet…

    Initially, I was skeptical about the design, but it’s actually a pretty nice little tool. When someone wants to borrow a browser, being able to just hit guest, let them play on their own desktop, log them out, and return to what you were doing, …