Empathy is the new default IM client in GNOME (actually since GNOME 2.24) . It has become the default IM client in Fedora and Ubuntu 9.10 (Karmic) . I did not switch from Pidgin in Karmic as Pidgin worked fine for me and Empathy seemed to lack lot of features at that time. After Lucid beta (shameless plug : check my post Upgrading to Lucid from Karmic if you want to try Lucid Lynx ) came , I decided to give Empathy a try again. This time, I was quite impressed and made the migration from Pidgin. So in this post , I plan to discuss about Empathy’s cool features and how to migrate accounts from Pidgin.
[Update Jun 25 2010] : Added FAQ , updated section on group conversations.
[Update : Oct 1 2010] Updated the post to include new Empathy features like meta contacts, groups and private chat.
Cool Features in Empathy
Here I will list some of the cool features in Empathy.
1. Gwibber/Me Menu Integration
Empathy has a tight integration with social networks like Facebook and MySpace. You can add Facebook chat in Empathy and use it contact with your Facebook buddies ! Similarly Gwibber client and Me Menu use Empathy to a large extent.
2. Telepathy integration
Empathy heavily uses Telepathy. This manifests itself in multiple ways. If an app is "presence" aware then it can potentially use information from Empathy.
3. More than a Chat application
Empathy is not just a chat application. It can be used to make audio/video calls and even share the desktop !
Adding and Disabling Accounts
If you already use Pidgin, then the first time Empathy is started , it helpfully provides a account importer. Contrary to what the manual says, you can import Pidgin accounts whenever you want. Go to Edit -> Accounts and click the Import button which will show the Account Importer.
If you want to add an account directly using Empathy then go to Edit -> Accounts. It has built in support for a huge number of providers like Google Talk, Yahoo etc. It even has a neat feature which allows you to create a new account from Empathy itself.
Probably the most interesting providers are Facebook and MySpace. Now that Facebook has an XMPP/Jabber interface , this is probably the way to go. Facebook has started to annoy us with totally irrelevant ads – so you can try using Empathy for Facebook chat and Gwibber for viewing the posts. Once Moonlight gets Silverlight4 capabilities, check out Microsoft’s exceptional Silverlight Facebook client. Note : If you are in Windows/Mac, you can try it now itself. A brief youtube video on Facebook client is here . This should allow you to get the Facebook experience without the annoying ads🙂
As a digression, if you still want to stick to Pidgin and want to use Facebook chat in it , try Facebook’s instructions .
You can also use Empathy for IRC. It has a huge list of known servers, but I would prefer to use a dedicated IRC client like XChat. IRC chat is possible but a bit clumsy using Empathy.
Disabling accounts is easy . Go to Edit -> Accounts. Select the account to disable. Uncheck the Enabled checkbox. You can even use the Remove button if you want to permanently remove the account.
One of my main reasons to switch to Empathy is its excellent support to Audio/Video calls due to Telepathy. To be fair, Pidgin also has basic audio/video support. If the other client also belongs to the same type of account (eg : Google Talk) and the protocol has audio/video support you can make the call. If a contact has audio capability, then he/she has a microphone picture after the name. A video capability is identified by a Webcam picture. You can click on it to make the call.
Sharing the Desktop
Another cool feature is sharing the desktop. This is possible due to the integration of Empathy with Vinagre. So if the other client is also using Empathy , then you can share the desktop. The whole experience looks like a typical VNC session. I tested by connecting with my friend using GNOME. I have not tested connecting to a KDE friend even though I think it should be possible.
People Near Me
This is another cool feature. If you are connected to a local network and your friends are also fellow geeks using Linux/Empathy, you can communicate with them using People Near Me. Interestingly, this a server less communication which does not need an active internet connection. I was able to make this work in a LAN but it did not work in a wireless network. Hopefully, it will be fixed soon.
In case , if this feature does not work for you : Check if avahi daemon is running. Also check if the Bonjour ports are not blocked in your firewall (tcp 5298,udp 5353).
Another thing to try is to have a friend connect via Bonjour protocol in Pidgin and try to communicate with him/her via Empathy’s People Nearby account. Theoretically, that sounds possible but that is some thing to check.
I can think of many applications for People Nearby feature – eg sharing files with friends in the same network without emailing or trading thumb drives , which brings us to the next feature.
Sharing a File
You can share a file if the account is a Jabber (Google talk is a jabber account) or People Nearby account. The process is quite straightforward. Right click a contact and select Send File. Select the file and it will be transferred to your contact.
Currently, only Google Chat and MSN seem to allow group chats. There are three cases :
a) Joining a group chat after some one invites you
This is the simplest scenario. If the other chat participants invite you to group chat , you will see a window with a strange looking title asking you to join a private conversation. Once you open the window, you join the group chat automatically.
b) You want to initiate a group chat.
This has become easier in the latest versions of Empathy. Lets say you want to chat with contacts A and B. Open a new chat window with A. Now click on Conversations -> Invite Participant. It will open a dialog box and you can type the initial letters of the contact name. I know, they should have listed all the contacts instead of asking users to type and then auto complete – but, hey this is much easier than the method below🙂
In case you have an older version of Empathy, follow the steps below. I found an excellent thread in Ubuntu Forums that gives the steps for Group Chat.
0) In your terminal run "uuidgen" you will get a number similar to this "c9e943d0-ec5a-47d9-9151-c5c35d971e34".
1) Connect to your google talk account with Empathy
2) In Contact List click on Room then Join
3) Make sure you have you google account selected
4) The room name must be "private-chat-<uuid>" (check below how to get uuid) 5) The server should be "groupchat.google.com
6) Click join!
c) You want to add a contact to the group chat
1. As described in case (b), when you are in a group chat, click on Conversations -> Invite Participant and type the name of the contact you want to add to chat.
2) Assuming you are in a group chat, right click on a contact and select “Invite To Chat Room”. You will see a list of open chat rooms – select the appropriate chat room and the contact will join the conversation.
Meta Contacts is one of the coolest new features in Empathy. It is a very useful feature in Pidgin and I am glad that it finally made it to Empathy. Basically the idea is this : You can use Empathy to communicate with friends in multiple services like Google, Yahoo,MSN , Facebook etc. This results in unnecessary clutter. Worse, you can initiate conversation with your friends in an account you did intend to. Meta contacts solves this feature by allowing you to link all these accounts to a single contact. After linking, you can still chat with the contact through any of the existing accounts.
The first step is linking additional contacts. Lets say you have a contact A who has accounts in multiple services , for each of which you use Empathy. For eg A@gmail.com, Blah@yahoo.com, Blah2 in Facebook etc. Lets also assume that your preferred way of communicating with him is via his gmail account. So right click on the preferred account and select "Link Contacts". You will now see a new window with two panes. All your contacts are in the left pane and the linked accounts are in the right pane. Select Blah@yahoo.com and A’s facebook account (Blah2). In fact you can type Blah and Empathy will helpfully filter accounts starting with the letter. Any selected accounts will linked together.
This means that instead of A , Blah and Blah2 you will only see A. If you right click on A then you will see the individual contacts and options to perform some operations on them (like Chat, call etc). If A, Blah1 and Blah2 are linked, when you search for Blah in the contacts window, the filtered accounts include A. Very neat and useful !If you want to unlink, then you can right click on the preferred account -> Link Contacts -> Unlink. This will remove all the links.
Admittedly, the linking is as of now manual. New heuristics to link them will hopefully be added in the future.
Another of the neat new features is Groups. Basically, you can cluster your contacts into semantic groups like college, work, friends home etc. To assign a contact to a group, right the contact and select Edit. It will open a window which has a Groups section. If you want to add the contact to a new group, type the group name and click Add. Else, select all the groups that apply. A contact can belong to multiple groups.
There is a special group called Favorite. If you mark a contact as favorite, then he is shown at the top of the contact list regardless of the account or online status. If you find yourself chatting with a small group of friends then it is very useful. To mark as person as favorite, right click the contact and check the "Favorite" checkbox. Alternatively Right click -> Edit -> Check the favorite checkbox.
Empathy also has the option to perform stuff similar to Google Latitude or Yahoo Fire Eagle. It is quite bizarre that Empathy has not tried to integrate with these leading services. So this means that if you are using Google Talk or Yahoo , you cannot send Geographical information. In fact, I am not able to see a Location tab in my preferences. Apparently, your server needs to support Personal Eventing Protocol (PEP). From the net , it looks like Jabber software like OpenFire has options to send PEP. Probably, I will test using a local XMPP server next week and will update the post if I find anything interesting.
I tried using the list of servers mentioned in the manual which support PEP. But still , I could not get Empathy to send Location information to my contacts.
Empathy stores your log files locally and you can always check the previous conversations and search it. There are two ways to look at the previous conversations of a contact – Right click and say "Previous Conversations". This will open a dialog with two tabs : Search and Conversations. The interface is very intuitive. The other way is View -> Previous Conversations .
I have to say, I prefer Empathy’s interface to be more user friendly even though functionally it is equivalent to Pidgin.
Other Geek Stuff
1. If you want to find the Empathy’s config information , you will find it at ~/.config/Empathy . Note that the folder name is Empathy and not empathy.
2. All the conversations are at ~/.local/share/Empathy/logs/ . I found the location to be unusual. Another strange thing was that all the log files were in xml and contains lot of unnecessary verbosity. Pidgin files were much simpler and easier to parse and analyze. I used to write simple awk scripts to collect some simple chat statistics. (Eg find the ratio of conversations initiated by me etc). Probably, analyzing Empathy logs will make me use Python on Ruby for simplicity.
3. If you want to try the latest and greatest Empathy features check out their development release.
4. If you want to write code using Empathy check out its API manual . They have Python bindings which should make coding easier. It helps to learn about Telepathy and Mission Control though🙂
5. You might also want to check out this excellent article on Me Menu and Gwibber – Ubuntu goes social, gains Me Menu .
6. Check out Telepathy on which Empathy is built on.
Some Minor Empathy Annoyances
Empathy is by no means perfect. It is yet to catch up with Pidgin in some aspects, although its status as default GNOME IM client will accelerate the efforts to achieve feature parity. I have my list of minor annoyances which by no means complete. Most of them are stuff that is possible/easy in Pidgin.
1. I am not sure how to block a user. I am yet to figure how to do it.
2. Pressing Escape key does not close the window. It is a convenient shortcut in Pidgin.
3. It does have tabbed conversations but Ctrl + Shift does not rotate through the tabs. I have to use the annoying Alt+1 for going to first tab.
4. Also when a new conversation comes , it does not open it in a new window. It just keeps blinking the tray icon. I have to explicitly click on the Empathy icon to open it. A Pidgin like ability to open the chat in a new window will be useful.
5. It will be cool , if I set a custom message in Empathy and it becomes my Facebook status. I know I can do it via Gwibber but this should be cool.
6. Some people have mentioned that it does not have a OTR ability. Although to be fair, even in Pidgin you got it via plug-ins. Currently, to my knowledge there seems to be no plug-in manager in Empathy but that could change soon !
I added this section after seeing from Search logs that lot of people reaching this post from search engines have some common queries.
1. Where is Empathy’s Chat log files ?
Check out ~/.local/share/Empathy/logs/ . As far as I know, there is no way to disable chat logs. You can have a cron job deleting the chat log files periodically.
2. Where is Empathy’s configuration files ?
Empathy is really lacking in configurability. Other than the very simple preferences menu, it does not offer that much. I searched for text files that when tweaked offered some more control but was not able to find any.
3. Escape button does not seem to close the Chat Window !
Yes. It is very annoying. It is even more baffling given the fact that pressing ESC closes the contact manager. If you wish you can watch this GNOME Bugzilla request.
4. Ctrl+Shift does not seem to cycle through the tabs ?
Yes . It is yet another annoyance. Use Ctrl+PgUp/PgDown or use Alt+Chat tab number (eg Alt+1) . I do not think this is going to fixed.
5. What are the common keyboard shortcuts in Empathy ?
Ctrl+L : Clears the Chat window.
Ctrl+W : Closes the chat window. If there are multiple tabs, then closes current tab.
Ctrl+F : In contact manager, shows a textbox to search contacts. In a chat window, shows a textbox to search the text in "current" chat tab. (ie does not search previous conversations).
Ctrl+PgUp/PgDown : Go to next/previous tabs.
Ctrl+Shift+PgUp/PgDown : Move the current chat tab to left/right.
Esc : When pressed in Contact manager closes. Inside a chat window, closes the find status bar if present.
F3 : When pressed on Contact manager , opens a Previous Conversations window to search them. Unfortunately, it does not work in a Chat Window.
If you have done some GNOME development, take a look at /usr/share/empathy/empathy-chat-window.ui for all the UI short cuts.
6. I cannot make Audio/Video calls
This is still a work in progress. To see the latest list of providers to whom you can make audio/video calls, press F1 in Empathy and see the section "Empathy Instant Messenger > Audio and Video Conversations" . This has a table which shows which all services have audio/video calls enabled.
7. How to use Chat Rooms/Group Chat in Empathy ?
As of now , only Google Chat and MSN offer group chat. For instructions, check out the section on "Group Conversations"
8. How do I do OTR ?
OTR or Off The Record or Private Conversations are an important feature in IM. But it is also a tricky feature to implement or use. As of now Empathy does not support OTR. More details can be found in the official FAQ.
9. My question is not answered !
I am sorry that the post did not cover your question. You can post a comment and I will try to reply. Or you can check out the official FAQ.
I think , I have covered most of the important stuff. So give Empathy a try and enjoy all its cool features and comment about your experiences !