A more extensible KDE


First off, I love KDE and I am a long time KDE user. I use GNOME/GTK applications where they good KDE/QT based alternatives don’t exist, but I prefer K-land in general. Don’t get me wrong, KDE is one of most extensible free desktops out there. However, I do think it is missing extensibility in a few key areas, namely the web browser (Konqueror) and groupware (the KDE PIM suite).

The explosive adoption and popularity of Firefox is a testament to the power of having an extensible platform. The ingenuity was in opening up the API and then getting out the way of developers. Even a cursory look at the [[https://addons.mozilla.org/en-US/firefox/|extensions directory]] shows that big and small developers basically just ran with the extension mechanism, using it to enhance the user experience of Firefox in often unexpected ways. And thats the real beauty of the system — it is now self-sustained, with a vibrant, thriving and supporting community. Another huge facilitator was a centralized extension directory and a built-in auto update mechanism.

{{ http://www.mozilla.org/products/firefox/buttons/header.png|Mozilla Firefox}}

A similar phenomenon has propelled the growth of Thunderbird. While the [[https://addons.mozilla.org/en-US/thunderbird/|Thunderbird extension directory]] is not nearly as comprehensive as the Firefox one, there is nevertheless a lot of interest and enthusiasm in extending Thunderbird. It also allows users to take advantage of newly enabled functionality without waiting for a proper release to come out. For instance, there is a [[https://addons.mozilla.org/en-US/thunderbird/addon/4631|provider for Googel Calendar]] which allows read/write access to your Google Calendar from within the Thunderbird UI (using Sunbird or Lightning). Or check out [[http://simile.mit.edu/seek/|Seek]], which builds a completely new search interface (Faceted Browsing) in Thunderbird.

On the other hand, despite having an [[http://ubuntuforums.org/showthread.php?t=418950|excellent]] [[http://vntutor.blogspot.com/2008/02/10-hidden-features-of-konqueror.html|feature]] [[http://www.konqueror.org/features/|set]] and a proven rendering engine (KHTML, from which WebKit was derived, which in turn powers Safari, among others) [[http://konqueror.kde.org|Konqueror]] never quite hit mainstream. Even today its user base is limited to power browsers or loyal KDE fans. I have myself [[http://floatingsun.net/2005/10/10/konqueror|tried to switch to Konqueror full time]] but always gave up, usually because of lack of functionality compared to Firefox (often enabled due to various plugins I had installed) and bad support for advanced Javascript and most noticeably, Flash.

Konqueror implemented support for Netscape/Firefox plugins as a stop gap measure, but AFAIK that mechanism was primarily meant for Flash, and even then it is quite flaky (it //still// doesn’t work for me). There never was the ability to use any of the regular XPI/XUL based Firefox addons.

{{ http://www.kde.org/stuff/clipart/klogo-official-oxygen-128×128.png|KDE}}

Similarly crippled is the entire groupware suite in KDE, [[http://kontact.kde.org|Kontact]] and all its component applications, most notably [[http://kontact.kde.org/kmail/|KMail]] and [[http://kontact.kde.org/korganizer/|KOrganizer]]. Here are just few of the ways in which I would **love** to extend KMail and KOrganizer, but have no way of doing so, short of downloading the code, making the changes and compiling from source, which makes it all but impossible for the vast majority of users out there:

* allow KAddressBook to synchronize with my Google Contacts
* allow KOrganizer to synchronize with and edit my Google Calendar
* support for arbitrary tags/labels in KMail
* build an attachment browser for KMail
* build email analysis and visualization into KMail

It might be that some of these are better implemented as core features and not as plugins, but thats not the point. What frustrates me is that there is //no// way for me to easily and quickly extend the functionality of my applications, despite the fact that KDE has always had a really clean and modular architecture, so building a plugin mechanism really shouldn’t have been that hard. Case in point: Amarok.

Anywho, with KDE4 and the consequent KDEPIM port/rewrite, we have a chance to fix things. Please, //please// make sure that an extensible plugin based architecture is a first class feature this time. And with the [[http://kross.dipe.org/|Kross]] framework, I should be able to write extensions in several popular languages (btw, I’m not a big fan of XUL/XPI, and the documentation on them is not that great either). It would be so much easier and nicer to be able to write addons in Python or Ruby.

So here’s to a more extensible KDE.

One comment

  1. D

    Agreed!!! I need Rikaichan extension in Kmail/Kontact. That would make my PIM life pretty much complete. (That and removing the bugs that cause Kontact to krash.)

Leave a Reply