New project: Empathy

Hi GNOME lovers,

I started a new GNOME project 2 months ago, it’s a IM client designed for the GNOME desktop. It is not yet-another-xmpp-client, Empathy is a telepathy client using nokia’s mission-control (MC) and reusing gossip‘s UI. This project was previously known under the name of Grapevine.

Empathy is subdivised into two libraries (libempathy and libempathy-gtk) and 3 programs, everything is implemented in C language:

  • libempathy: An abstraction layer on top of libtelepathy and libmissioncontrol. It provides high level API to easily build an UI on top of it.
  • libempathy-gtk: A collection of GTK widgets build on top of libempathy. All applications are very simple because they just have to show those widgets to the user. Those widgets are forked from Gossip.
  • empathy-accounts: Create/edit accounts settings.
  • empathy-contact-list: Show a list of online contacts.
  • empathy-chat: When a new chat (or chatroom) is created (someone sends us a message for example), MC will start this program and it will be responsible of showing the conversation to the user.

Those programs are very simple, less of 100 C lines code! They just creates widgets from libempathy-gtk. Those widgets can easily be embeded into other GNOME applications in order to integrate IM into GNOME desktop applications.

2 examples of usage of libempathy-gtk for other GNOME applications:

  • Evolution could display the avatar of a contact and propose to answer to an email using IM. It’s really possible with little work.
  • Nautilus could provide a “Send To” menu item, when right-click on a file, that shows a list of online contacts and sending the file directly.

Everything can be done regardless of the protocol used, thanks to telepathy Connection Managers.

There is already 2 Google SoC projects related to Empathy:
Simple user-to-user file transfer without configuration in a LAN
VoIP and video call client using Telepathy

I’m pleased to announce the first public release of Empathy !!! It currently supports contact-list, avatar, alias, groups, presence and private chat. More to come on next releases. See the first screenshot, download tarballs or checkout darcs repository. The project will soon move to GNOME svn and bugzilla.

If you want to help on making empathy rock feel free to check the TODO file included in source code.

Empathy is sponsored, inspired and loved by Collabora.

14 Responses to “New project: Empathy”

  1. hello!!

    disclaimer, english is not my native language.

    i downloaded and tried empathy. And it just worked :D

    I have a suggestion. The username and password in the settings section is very hidden… it should be at the top to be easily

    You talk about a similiar project in SoC about voice call. Did you see this other project??

    http://codeposts.blogspot.com/

    Its a python telepathy client that suports gTalk calls… it appears in planet.gnome.org so i asume that you saw it.

    the other thinks is…

    GREEAAAAAT!!!

    i love that kind of integration.. i’d love to see that kind of feature in evolution or nautilus… i hope to see it integrated in whole gnome some day..

  2. Other thing

    It really need feedback when an account is connecting. or show ing an error when it cant connect…

  3. Tester says:

    Empathy is so cool! Go Telepathy go!

  4. alejandro vera> The UI to configure accounts is not the final one. Actually it’s a generic widget to configure any protocols accounts, I still have to import protocol-specific widgets from gossip to have a nicer UI for each protocol and display only useful settings.

    I know about the other project, but it does not have to same goals as me. I want GNOME desktop integration, the only solution for that is using C language (and making bindings) and use a MissionControl. Empathy is the only project to do that!

  5. mikem says:

    What about gossip-telepathy, I think Empathy is nearly the same, isn’t it?

  6. mikem says:

    Ohh yes, the name “Grapevine” was better ;)

  7. mikem> gossip-telepathy does not uses a MissionControl and does not provides widgets in a library, so it makes desktop integration impossible. The grapevine name can’t be used because it’s a trademark I think.

  8. yoplait says:

    @Xavier

    This european trademark [1] seems to cover the kind of product that empathy is. It’s not for software, but since it’s about communication, I would not risk it. It expires in one year though.

    Too bad, grapevine was a really good name : a beautiful metaphor of a group of components connected together. And when I learned that in English “to hear something through grapevine” means to learn of something through gossip, I thought that it was the perfect name for the project.

    Well, good luck anyway ;).

    [1] http://register.bmb-bbm.org/bmbonline/details/trademark/show.do?markID=56915&markNumberType=EUR&markNumber=727305

  9. Vudentz says:

    The idea is good, I also like the name, but I miss the use of tapioca-glib, why creating another one. Right now the only missing part is the integration with mission control, but I will be happy to integrate it into tapioca if it will be used. This also simplify the integration with others mission controls as decibel that already uses out qt library.

  10. Vudentz> I didn’t used tapioca because gossip has almost the exact same functionalities internally. gossip’s UI heavily depends on libgossip’s API so it’s a huge work to move to another API, even if it’s really similar. I agree it’s not a perfect situation, there is lot of work duplicated between both projects.

  11. WHat I would wish is a findamentally different Chat client. I think with growing numbers of chat users the current interface that always display all people are not good any more. What would I suggest? I would suggest using the Evolution address book, and that you cans earch for user names like the deskbar does it. Every contact should have the information of you want to be informed when he gets online. This should not be hidden but rather every entry should show different buttons and switches. And rather then having to right click to open new window with properties I like to see a tab opened if one does a double click with a split window (contact information + messaging). I think for too long all the messangers have made more or less the same interfaces. I also would like to see Tango style icons for all the chat functionality. Its not easy to always learn new mataphors for language on every client.

  12. mike says:

    So pls rename it in 1 years time ;9

  13. Gilles Dartiguelongue says:

    Hi, just curious about one thing. Why don’t just ask gossip guys a branch and work with them to enhance the libs ?
    gossip’s guys are quite responsive to changes so I wonder why creating another project was needed (no offense).

    I also heard some people discussing about using the nokia mission control but don’t remember the end of the discussion.

  14. Gilles> I’m the one who wrote most of the telepathy support for gossip. The problem is empathy’s goals needs a really big rework of gossip that can’t be done into a branch. Gossip’s main developpers refused to make that radical move within gossip itself so I decided to create a new project and reuse gossip’s UI which is really awesome. Empathy uses nokia’s mission control, gossip won’t.