Making Kopete slightly more usable

I have been using Kopete for years, and it is a great IM program. After the recent releases for kde 4.x I have noticed a few irritations. These irritations are small, merely papercuts, but should still be fixed. So I fixed them.

I would say in advance, these fixes are probably (certainly) implemented in the wrong way, and should never go near an official branch. If I ever find time to figure out how to make this work in the right way, I will. For now the patches are here and they are pretty raw, but functional.
Also I didn't bother to try and fix compiling the experimental branch as it seemed more broken than I can find time to fix. These fixes are compiled against the latest stable kopete 0.80.2 from svn. They took me about 2 hours of real work to do these.

A couple of problems in the current kopete, and resolutions

Here are the problems as I see it. You may disagree.

  • Searching. Working but limited.
  • Search visual elements. Shows empty folders in the results view
  • Grouping offline contacts together. Doesn't exist!


Searching is broken. Irritatingly so. Yes it will search, but it does a terrible job. If you have a contact with a weird name it breaks. The problem is that the search function just applies a filter on the display name of the metacontact.
I mean how do you search for this guy...


Well, you can't, not easily at least. I could find him manually, and rename the metacontact, but that robs the user of their personal message in the list, and removes some fun figuring out why they called themselves that name in the first place (/sarcasm)


The fix is fairly comprehensive as far as searching for a contact goes. There is now a more advanced search function that will search the display name, the email address, and also any contacts that are part of the merged metacontact. So now if we merge two contacts into one, we can search based on, say, the MSN display name within the metacontact.

better search

So now I can search for Roy by a partial of his email address. Woo!

Search Folder removal

Searching also doesn't remove the folders with 0 search results from the view. This is a minor issue but I have a lot of folders that clutter this up.


Searching now removes the folders that have no search results inside of them.

better search

As you can see, the folder list is now decluttered.

Grouping offline contacts into one folder

This is what started this for me. I often want to quickly find a contact that is offline so I can do an offline IM (if supported by protocol). With the options set to not display all users, I have to either search (which remember was crappy) or show all ofline users and manually hunt. Both of these options suck.

Pretty messy!


Easy enough. When a user is offline, put them into a special group called Offline.

As you can see, the offline users are all now in one folder. This is kind of hard coded in this patch :)

Scratching an itch - sticky contacts

EDIT: I am told this is already implemented in trunk. Woo! Luckily this took no time at all :)

What? Well, wouldn't it be nice if a special contact (say, a friend) could be shown with all of the other online contacts in that group?
Well, I think so, yes. If you want a contact to appear in the group, even if offline, then make it sticky.

Right click and make it sticky. I couldn't be bothered with icons, so it has the same as add.

Here is the sticky contact. He is offline at the moment.

This patch goes quite deep into libkopete so tha the object can save this as a persistent option. We could probably do all of that with a plugin to kopete, but it took me long enough to figure out the current mostly undocumented code base.

Patch please

Okay, here it is

EDIT: I don't recommend using, reading or poing anything with the patch below, lest your eyes melt.Please use the much better patches below which stand a chance of working properly.
Kopete 0.80.2 patch (patch-kopete-0.80-2)

I have also broken these patches up into individual features (per request) for submission to kopete devel team.

Better search. Looks in metacontacts name, display name, email and subcontact names. Also removes folders when 0 search results.
Kopete 0.80.2 patch (kopete-better-search-0.80.2-r1.patch)

Group Offline Contacts Groups the contacts together into folder called "Offline Users". Note this doesn't include the better search patch.
Kopete 0.80.2 patch (kopete-grouped-offline)