IM, Contacts & Social hackfest: Shell: Design: review of the existing chat integration

  • Owner: GuillaumeDesmottes

  • Presentation of the existing chat integration
  • Gather feedback from people already using it
  • Present 3.2 planned improvements
  • Brainstorming about possible future improvements
  • Unread messages notifications should be more visible (#641723)

  • Display the number of unread messages (#649356)

  • Smiley support? (#651875)

Notes from the discussion

Starting with Guillaume demonstrating his latest work on the chat integration:

  • Empathy doesn't flash forever in the notification area when you get a new message!
    • Still in practice need the contact list running, but we will revisit that later.
    • Now the shell is an Observer, an Approver and a Handler! woop woop
  • If you view a message in the messaging tray, it marks the messages as read (so the Empathy window stops showing them as unread).
  • The messages being shown out of order when you promote a conversation from the shell into a conversation window has been fixed.
  • Bastien wonders about metadata (like the contact's alias) being lost in scrollback in Empathy: this is a Logger issue.

  • Sjoerd shows a bug where opening a conversation from the contact list when the conversation is already open in the shell pops it up in the shell again, rather than opening a conversation window. (#652439)


  • Right now, you get shell bubbles popping up for every incoming message, even if the Empathy tab for that conversation is in the foreground. (#647627) Possible ways to fix:

    • delay the notification for a few ms in case it's acked immediately;
    • put a x property on the window to tell the shell that that conversation is in the foreground;
    • handler d-bus property? avoids bouncing off the CM and back. danni doesn't like it and nor does guillaume;
    • move showing notifications into Empathy;
    • put a boolean “Foreground” property on the Channel object.
  • Related problem: getting notifications for a conversation you know you're having and you're just switching temporarily to your browser to check something out.
    • rate limiting?
    • "ignore" button on the notification? (lots of shaking heads and "no")
    • need to be sure that new notifications show back up at a later time either way.
  • unread messages in the message tray: jonny has started work on this.
  • (non-GNOME-specific aside from Stef: make gabble unbind from resources after a while/on status changes/.... Right now he often finds messages go to the wrong place because he leaves a conversation window open on one machine and moves to the other.)

  • getting notifications for message you sent: fixed by Jonny in master.

Unread messages notifications should be more visible:

  • Guillaume thinks the bar should be always displayed if at least one message is unread. The main issue is: if someone comes to your desk and talks to you for 30 seconds, and you get a message during that time, then you miss the notification (because you weren't looking at the screen). 30 seconds is not long enough to trigger the screensaver.
    • Bastien thinks that this means you can't ignore the messages, even if you know about them
    • "go busy": but that ignores all incoming messages

    • use the same ripple as you get when you hit the Activities hot corner: ripple every minute or something when there are unread messages sitting in the tray. (exponential backoff)
      • the ripple means something different in the Activities corner: “you made something happen” vs “you should mouse here to make something happen”
      • Bastien is concerned that this is just another way to bug the user, and one of the core
    • there's a trade-off here between GNOME 3 allowing you to focus on your work, and GNOME 3 allowing you to miss messages which matter.
    • put a badge on the Activities corner? But this means that the notification is in the wrong corner of the screen.
    • could we be a bit more aggressive about inferring from the user ignoring notifications that they don't care about them and taking action?
    • another option is to keep the notification up indefinitely as long as there is no keyboard and mouse activity. once the keyboard and mouse are used, make the notification go away after 5 seconds, as it currently does. This should deal with the “someone is talking to me IRL” issue, without adding any more nagging than we currently have. Doesn't solve another issue: I'm writing an email, and I choose to ignore the notification, planning to come back to it once I hit Send on the email. But by the time I finish writing the email, I've forgotten about it.
      • “The desktop shouldn't punish the user for making a mistake” “This isn't a punishment; it's supposed to help you focus, not to nag you. I think I would turn off the feature immediately if it started nagging me.”
      • There is an existing feature like this: if messages come in while I'm marked as Busy in the shell, when I go back to Available the notifications I missed come up. If we extended this to also include reminding you about messages that came in before you went to Busy, but hadn't dealt with, then this solves the problem once the user has learnt about this feature.

Here are three orthogonal options in order of apparent controversiality, posted to #641723 :

  • Extending Busy→Available→notify me of missed messages to also include messages from before we went Busy: uncontroversial, requires the user to learn to use this feature.
  • Mouse-and-keyboard tracking to stop notifications going away at all while you're not using the code. Needs polling; doesn't add any new notifications.
  • Add a ripple every so often to remind the user. Might be considered nagging.

We could write a user guide with things like “how can i stop the shell nagging me without forgetting about the messages”.

Keyboard shortcuts we want:

  • Toggle Available/Busy
  • Open the last tab in the messaging tray I was using. Or more generally: have a keyboard shortcut to pop the tray back up. #652447

  • Be able to switch tabs in the messaging tray with the keyboard (ctrl-pgup/pgdn). #652448

Hackfests/IMContacts Social2011/Tasks/ShellDesignChat (last edited 2011-07-26 16:06:43 by WillThompson)