Mon, 06 Apr 2009

Indicator support for Empathy

As well as the new notification bubbles, jaunty now has something called the "indicator-applet", or various other names. If you are running Jaunty you may have seen it as an envelope in your panel. Not much is taking advantage of it yet, with only Evolution and Pidgin having the necessary support until recently.

The purpose of this applet is to give you access to messages that are waiting for you, regardless of the source. You can see some of Ted's early sketches on the idea, or the early draft of the spec for some information. Having this place gives you one place to look to respond to a message you received, and is part of the strategy to solve the issues caused by having notifications without actions. It also allows you to launch the main windows of the applications so you don't need to have an icon for each in the notification area.

As I don't use pidgin the only thing taking advantage of the menu was evolution, so I went to find which of the other apps I use had support. I first grabbed a more recent version of gwibber which had support, and sent a quick merge request to improve the support. There was little else I could do there though, as Ryan had done a great job already, and all I had to do was hook up a callback so that gwibber would open when you clicked on a message you received from someone.

I then moved on to Empathy, and found a bug requesting support be added. I decided to relax this weekend by working on something completely different and trying to add this support.

I found the libindicate API easy to work with, though it is un-documented currently there is not too much too it, and it has quite some similarity with libnotify. After finding my way around the empathy internals, learning more about gtk+ and encountering a bug in libindicate that I spent some time investigating I had something mostly working. It's not ready to merge yet, but it is most of the way there, and covers the most common cases.

You can see a quick video of the interaction, which shows the concept behind the menu as well. (Yes, I am talking to myself in that video, as Ted said, working on IM apps can be quite lonely as you continually send yourself messages).

Posted at: 00:11 | category: /tech | Comments (8)


Very cool. Will have to give Empathy a try over Pidgin again. The last time I tried it I seemed to lose some incoming messages; maybe a notification like this might help keep track of them.

Posted by Jacob Peddicord at Mon Apr 6 01:06:27 2009

"libindicate is a Ubuntu-specific thing, this is not the right place to dicuss
such changes."

... and why should anyone bother with the upstream then if they have this attitude?

Posted by Vadim P. at Mon Apr 6 01:43:29 2009

@Vadim

It's funny since I've seen the same person who made that comment complain about how the notify-osd work "should be done upstream," ect...

Anyways...

Cool stuff James. Where is the libindicated gwibber from? Is it a seperate branch? I'm just using the jaunty version. Is it in the PPA for Gwibber Team, or do you need to run the daily builds?

Posted by andrewsomething at Mon Apr 6 02:19:56 2009

Hi Andrew,

The support is in gwibber trunk, but not in the Jaunty packages last I checked. The daily PPA should have it, or you can run from a branch to try it out.

As for Empathy, I pushed my patch to my PPA, so you can install it from here if you are on Jaunty:

https://edge.launchpad.net/~james-w/+archive/ppa

Posted by James Westby at Mon Apr 6 16:53:41 2009

Oh sweetness! I was thinking about doing the same thing, but never actually found the time to do the legwork.

I just wish there was more time and this could be included in Jaunty

Posted by Sami Haahtinen at Tue Apr 7 08:12:10 2009

@Sami: It's definitely included in my Jaunty! :-)

Empathy just became 81% less annoying. I mean, a perpetual icon that BLINKS for your attention? Please no.

Thanks James!

Posted by topyli at Wed Apr 8 08:41:11 2009

Which version of the indicator applet are you using? Mine doesn't have those nice icons...

Posted by menek at Fri Apr 10 10:42:22 2009

I was wondering how I get the desired package installed.
I have applied your PPA, and checked for updates ... nothing, so I guess I need to install some additional package to get the support for indicator-applet?

Posted by Yunsehn at Fri Jun 19 10:25:47 2009