---------- Forwarded message ----------
From: Will Thompson <will.thompson(a)collabora.co.uk>
Subject: Telepathy/Empathy improvements for Gnome Shell
To: Telepathy <telepathy(a)lists.freedesktop.org>
At the Boston GNOME Summit this weekend just gone, Rob McQueen and I chatted
to some of the Gnome Shell team about its Telepathy integration. There are a
few tweaks to Empathy, and one slight semantic tweak to the spec, that we
decided would make things more awesome. Apologies for people who know how
the shell works for length. tl;dr:
• Document that one handler can call HandleChannels() on another to transfer
the channel, and add helper API to TpBaseClient to make it easy and do the
• hide the tray icon if the shell is running and no channels need approving;
• don't approve 1-1 Text channels if the shell is running;
• make Empathy change the user's presence based on the session state;
• rename Empathy Internet Messaging to Chat in the .desktop file.
When you mouse to the bottom-right of the screen, a tray fades in from the
bottom which contains transient notification icons and the avatars of
contacts with whom we have ongoing conversations, or we recently spoke to
but aren't talking to currently. If you click an avatar, a little bubble
appears out of it with the conversation so far plus a text entry. You can
chat with the contact right there; or, you can click anywhere in the bubble
(except the text entry) to spawn or focus the corresponding Empathy window;
or you can hit escape to dismiss it. When the tray's hidden and a new
message arrives, a notification appears at the bottom of the screen for a
few seconds with the sender's name and the first line of the message; you
can click the notification to show the same inline-quick-reply bubble.
First up, credit: this feature is really, really addictive. It's handy to be
able to rattle off a quick reply while I'm doing something else, and later
get easy access to the full chat window.
At a Telepathy level, the shell needs to be an Approver: incoming channels
shouldn't be dispatched to the handler before the user clicks on the bubble.
It also needs to be an Observer, to watch ongoing conversations and see when
To support the case where we don't have an open channel to a contact the
user clicks on, it also has to be a Handler to avoid Empathy being invoked
for the channel request. But now we need a way to transfer that channel to
Empathy. I think the Shell could actually just call HandleChannels() on
Empathy itself. If so, we should document this, and add convenience API to
Empathy's notification bubbles for incoming messages and other events need
dealing with, but this is a matter for another mail.
Currently, Empathy's tray icon shows up in the bottom-right corner, and
flashes continuously while the user is using the mini-chat view on
unapproved text channels. We should hide the tray icon when the shell is in
use, and only show it when channels need approving. Also, we should not be
an approver for 1-1 text channels while the shell is running.
Unrelated to conversations: there's a presence picker in the menu that
appears when you click your name. It doesn't offer the full range of IM
presences: it's for general desktop presence. If you're Available,
notifications get shown to you etc etc; if you're Busy, they hide until you
mouse to the corner. The general opinion seems to be that if Empathy is
running the user should be signed in (unless they pick Offline, obviously)
and if it's not, they shouldn't. So Empathy would listen to the session's
state change notifications (between Available and Busy, and the implicit
change to/from Away) and update your Telepathy status accordingly. If the
user picks Invisible or Away or whatever in Empathy, then this should take
priority over the session state.
Finally, Empathy's full name in its desktop file should be changed to Chat.
The design is that applications that are part of the desktop platform (like
File Browser, Calculator, etc.) should always have unbranded names, and
applications that sit on top (such as Firefox, for instance) should have
branded names. Empathy is considered part of the desktop.
gnome-shell-list mailing list