IM, Contacts & Social hackfest: Shell: Design: presence chooser interaction

  • Owner: GuillaumeDesmottes

  • Review existing Shell presence chooser integration
  • Discuss future improvements, especially a tighter integration with IM (being online without having Empathy running)
  • The meaning of this presence is unclear (#648106)


Main point is to discuss the “user menu” (*not* the “me menu”). You can set your desktop status to Available or Busy. If you're in Busy mode, almost all desktop notifications are hidden. If Empathy is running, changing your desktop presence has the side effect of changing your IM presence. But if Empathy is not running, choosing Available doesn't put you online. This confuses users: it looks like it's an IM feature, but it's not actually directly related to IM.

Guillaume's goal is to have a full, working IM experience *without* having Empathy running. One suggestion has been to have a tickybox/lightswitch for “sign into IM”. Should we have an “offline” option? etc.

Bastien wanted an online/offline switch. Also, he points out that it always says “Available/Busy”, even if NM knows we have no internet connection.

Why can't we just use the existing UI, with an Offline option, asks Allan?

Can't use the words “online” and “offline” for IM: they sound like network connection state, but actually they're not. So we could have:

Chat:                     [ on  #### ]
Chat:                     [ #### off ]
Chat:          /no network connection/

Should it also turn off checking for new mail? Alex thinks not: you probably always want to check for them, but not notify them.

Does the user ever want to be not on IM? Could we just have Available / Busy / Invisible? No: not all protocols support Invisible, and users *do* want to be offline sometimes. (This was previously discussed at the Boston summit in 2010.) Alex suggests falling back from Invisible to Offline on protocols which don't support Invisible. This would be surprising.

How are people meant to discover that Busy suppresses notifications? Right now they can't.

Allan notes that we haven't had any publicity for some of the unique features of GNOME 3 yet: this could include notes on how this works. So the UI doesn't necessarily need to explain this. Bastien cites mobile devices which have non-obvious gestures and features that people find out about from their friends, but the software is still basically usable without them.

There's a mismatch between the statuses presented in the user menu and Empathy: • Invisible we covered • Offline we covered • Away: we switch between this automatically based on the screen state, but some people really like being able to do this manually.

What is Invisible for? Teenage girls. You want to get work done. A lot of people ignore Available vs. Busy/Away and IM you anyway, so Invisible is a workaround for this.

Nick notes that “I'm mobile” is another, non-presence signal which you send to your contacts to signify how you want to be contacted. “I support video calls” is another indication.

On SIPE, you have access levels for groups of contacts. When you're Busy, only people in your team can actually contact you; other people can see that you're busy, but they can't IM you or call you or anything.

(Is having just one place to set your IM status a goal?)

Bastien doesn't think that we should remove the Busy→suppress notifications behaviour because no-one discovers it. Allan reiterates that there are many ways that we can communicate these “hidden” features to the user. Alex points out that the issue is that it does two things: one obvious and familiar, and one new and unexpected.

Nick wonders if there are any other things that the user is saying when they pick “Busy”, besides hiding notifications and changing IM status. “Set everything to fullscreen” is a bad example.

Alex wonders if renaming it to “Do not disturb” would make its other functions more obvious. (We could call the other one “Disturb me”.) Alex wouldn't mind a “Do not disturb me” ticky box and separate IM presence.

If we get rid of the roster, this goes away a bit. Nick reports that putting ways to set your status in loads of places, all linked, did not confuse users; what users *did* want is to be able to be invisible on Facebook and Available on Google Talk.

Bastien doesn't think that having two places to set your status, with one not feeding back to the shell, is a problem. But: if you were Invisible, would you show incoming message notifications?

Danni wonders about having these orthogonal options:

  • Available vs Busy
  • Visible vs Invisible vs Offline

(If you pick “Invisible” in Empathy, and “Busy” in the shell, should you be visible?)

If we want to say “to be signed into IM, you have to have a thing called IM running”, then we can make the User Menu only control notifications, and have IM controls in the IM application. But if we want to be able to use IM in GNOME 3 with no applications running, then we need to be able to control IM presence without having any applications running.

“Do we want to have IM tightly integrated into GNOME 3? Yes.”

There's a side-point here that if the Contact List goes away (due to GNOME Contacts) then where would they do that? In the Conversations app? Nick notes that when you're setting complex presence, sometimes you might want to broadcast that status to Twitter; and sometimes you don't.

We could make Invisible fall back to Offline; and then conceivably make Invisible be the default? Bastien thinks that going online should be an explicit user action, and you should never be online by default.

Allan really likes having a binary “Available”/“Not Available”, and wants to know if there are any compelling use cases that this binary doesn't support. We could try:

(o) Available
( ) Do not disturb
Visible online [ yes  ###]

Allan is concerned that there is a strong overlap between DND and “Visible online”.

Alex proposes:

(o) Available
(  ) Do not disturb
Facebook          [ yes ###]
Google Talk      [ ###  no ]

A chorus of “no, no”.

People start discussing ahead-of-time customisable presence profiles, like on the N900. Nick hopes it was a joke. They found significant issues in allowing them to be rich enough to cover everything on the entire device while still being able to be used by a human.

Having Home vs. Work profiles would also have to tie into your Evolution accounts, file sharing settings, etc. Allan notes that the plan was to choose your profile automatically based on your network; many people note that this isn't enough for people who work from home. (Discussions about learning what statuses you want when you change your profile.)

Final conclusion:

(o) Available
( ) Busy
Visible for chat [ yes ### ]

with the divider moved to below the slider to make it clear the options are related. When it's set to “no”: invisible if possible, offline if not. Change Empathy/MC to have the same behaviour. user-menu-presence-sketch-on-a-whiteboard.jpeg

“Visible on chat” and available/busy needs to persist across sessions. We can store this in Mission Control using AutomaticPresence. Empathy should, when running under GNOME Shell, not sign you in when you turn it on, and not sign you out when you turn it off. Should the slider be insensitive, network menu-style, when there's no network connection? Where do we put the notification that we couldn't connect to one or more accounts.

Morten wonders: if we've gone offline rather than being invisible, should we pop up a notification to tell people? Consensus seems to be “no”: it's very chatty, and unnecessary. Invisible and Offline are almost equivalent, says Facebook.

We need to implement:

  • Bubble for “You won't get any more notifications” when you switch to Busy, to make that feature more obvious to the user.
  • Notification bubbles for “Failed to connect to chat” should be implemented by the Shell: we have to avoid having double notifications for authentication errors when using GOA.
  • If you change your IM status in some other application, like the current Empathy contact list, then GNOME Shell should be updated.

(How do we deal with the case where your Google Talk status has been changed by another device? Does anyone have any good ideas for how to show this to the user?)

Status message setting? Leave it in Empathy. The end.

We need to make a bunch of changes to make the experience tolerable when you're signed into IM but not running Empathy, but this is the subject of the session after lunch.


Hackfests/IMContacts Social2011/Tasks/ShellDesignPresence (last edited 2011-06-16 11:40:39 by GuillaumeDesmottes)