I've been working for a while implementing a new Empathy contact list and I'm happy to announce that this work just reached master! It's based on a brand new design from Allan; I'm pretty happy with the result as it looks pretty similar to the mockups.

This new contact list has been implemented using Alexander's awesome EggListBox. This new GTK+ container has been extracted from Contacts to its own git repository to be easily usable by other applications using git submodule or subtree. If you've ever cursed at GtkTreeView for being such a pain to use you should really give it a try. It's a delight to use: you can pack any GtkWidget in it and so don't have to use GtkTreeModel and GtkCellRenderer any more.

New Empathy roster - no group

One of the goals of this new design is to unify the way contacts are presented to users across the whole GNOME desktop, which is why it looks pretty similar to Contacts. We also wanted to make it look 'cleaner' so presence statuses are now only displayed if the contact explicitly defined one. Groups have been disabled by default as most users don't really use them (they are not as useful as they used to be as you can quickly find any contact using the integrated live search) but can easily be re-enabled in the preferences dialog.

A very nice feature of this new roster are the 'top contacts' which are always displayed at the top of the contact list. It contains the contacts you tagged as 'favourite' but also the contacts you to talk most often. This is done using Folks's Zeitgeist integration[1].

New Empathy roster - groups

I want to thanks all the people involved especially Alexander for his help with EggListBox, Allan for his design, Seif for the Zeitgeist integration, Danielle who reviewed my code, Intel who funded parts of the Folks and Zeitgeist work and of course Collabora who sponsored most of this work.

Notes

[1] It's actually disabled atm as we are waiting for a Folks release which should happen soon