open source stuff

  • Twitter Feed

  • Advertisements

Weekly Update: Kopete Plugin and Add Account Assistant

Posted by grundleborg on July 27, 2009

In yet another probably-doomed attempt to write regularly about my KDE work, I’m going to try writing a weekly update every Monday on what I was working on the previous week. Lets see how long this lasts. (My bet is on 2 weeks).

Since this is the first one, and I’ve been back from GCDS for two weeks, I’ll cover the progress of both weeks.

Kopete’s Telepathy Plugin

There is a protocol plugin for Kopete that allows Telepathy accounts to be added to it as if it were just another protocol. It has existed for years, but has never quite been in working order. I’ve been working on this for the last two weeks, and now it is approaching being usable.

  • The Contact List works (with some basic management features like add/delete contacts, but not others like approving presence subscription requests).
  • Accounts are stored in the central Telepathy Account Manager daemon. However, only accounts added to the Account Manager through Kopete’s Add Account Assistant are accepted by Kopete (not if they are already in the Account Manager from some other source)
  • Channels are dispatched and handled through the central Telepathy Channel Dispatcher daemon, allowing you to have text chats with your contacts.
  • The Add/Edit Account pages are still horrible, but I’m going to integrate the Add Account Assistant from the KCM which I’ll describe below once it is ready.

Telepathy Account Management KCM

In the flying-car future of deep Telepathy integration with KDE, there should be one central UI which takes care of adding/editing/removing instant messaging accounts. This will exist in the form of a KCM Module (which can be invoked by any application wanting a “Add Account” button in its UI). In order to reduce code duplication, it is being designed so that classes from it can be reused with a minimum of effort in Kopete for the Telepathy protocol plugin’s account management features.

Features that have been implemented so far include:

  • Display a list of valid and invalid Telepathy Accounts.
  • Checkbox to enable/disable Accounts and show their icons (Thanks to Matteo Nardi for the patch)
  • Add Account assistant with a generic UI generated on-the-fly from Telepathy Connection Manager Parameters.

Features to coming this week or soon after include:

  • Custom UI plugin support and plugins for common Connection Managers in the Add Account Assistant/Edit Assistant
  • Edit Account assitant
  • Removing Accounts
  • Prettier/more usable UI for the whole KCM.

Thats pretty much everything for the last two weeks. I’ll be back next Monday (if not before) with another update.

7 Responses to “Weekly Update: Kopete Plugin and Add Account Assistant”

  1. stefon said

    just be sure: this means that two IM-programs (e.g. kopete and pidgin) can share their accoung settings? and creating one account in kopete would show up in pidgin?

    • grundleborg said

      It means two *telepathy enabled* IM programs can share their account settings (because the Telepathy framework stores all account settings in a daemon called the Account Manager). Pidgin is not a Telepathy IM client, so this doesn’t affect it. Kopete, at the moment, is not Telepathy powered either. I am working on a protocol plugin meaning that Kopete can use Telepathy (and its Connection Managers for all the different protocols) along side its own protocol implementations, and that uses the shared Telepathy Account Manager daemon for account configuration. Other Telepathy IM clients, such as Empathy would therefore share any account configuration that is done for the Telepathy plugin for Koepte.

  2. Matze said

    Sounds very interesting, but I remember something called decibel. Whats about this framework? Shouldn’t is be used as a layer between telepathy and kopete? Does decibel still exist?

    • grundleborg said

      Decibel was never a framework. Decibel was going to be a daemon which would fulfil the roles of Channel Dispatcher and Account Manager within the Telepathy framework. However, Decibel development dried up and it is now pretty much unmaintained (virtually no commits outside of the buildsystem for a year). Since then, another daemon (called Mission Control 5) which does the exact same job within the Telepathy framework came along and is now way more functional than Decibel, so it is generally used instead. Either way, the framework used is still Telepathy.

  3. ms said

    I’m still not entirely sure what Telepathy is and what its goals are. Will Telepathy replace all (most?) of Kopete’s current IM plugins? For instance, how does this relate to the work being done on WLM, i.e., will it be deprecated in favour of the Telepathy plugin?


    • grundleborg said is the best place to answer “What is Telepathy and its goals?”. Especially the presentations section, which I find explains things better than the wiki itself.

      As for replacing Kopete, at the moment Telepathy is just another option when creating a Kopete account. You can chose to use it (and its protocol implementations) or to use Kopete’s native protocol implementations.

      One day, in the future, I (and some others, but definitely not *all* Kopete developers) would like to see Kopete using entirely Telepathy. This would mean porting the UI layer to use Telepathy, and porting the protocol implementations to become Telepathy Connection Managers. The work done on wlm would not be lost because the library, libmsn, where most of the code is, could be used to create a Telepathy Connection Manager for MSN. However, all this is quite a lot of work, so it is definitely a plan for the “indefinite future”.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: