Monday, November 03, 2008

trunk/kdelibs/plasma/

As of today, the library behind the Plasma desktop has been moved into kdelibs.

Three years ago I just wanted a nicer panel. What a rabbit hole awaited for me to descend! Indeed Plasma was supposed to just be a replacement for kicker, but the more I looked at the problem space the more work there was to do.

The problems the Plasma team discovered, defined and destroyed together were common issues other application developers were also facing. Surprise!

So the fledgling library that was started to allow people to write Applets (nee, Plasmoids!) with some sanity morphed into a framework for making applications on top of a canvas.

We went through a lot of growing pains as our canvas (QGraphicsView) was young and we weren't sure at the start what all we'd eventually want to do with it. It seemed that every step forward we took revealed another problem in the stack below us and, for bonus points, another challenge that needed addressing in libplasma. Theming, scripting, data delivery, search, SVGs, packaging, ...

At some point the Amarokers decided to take advantage of libplasma in Amarok2. A couple other apps started having similar aspirations. Then people started wanting to do things like put Plasmoids on screensavers or mobile devices or custom hardware aimed at vertical markets. There were moments where I got the feeling it was all getting out of hand, but the genie was out of the bottle and that meant libplasma needed to be a bit more serious.

With the 4.2 release of the KDE software products we are committing to binary compatibility. To mark that event, we have moved libplasma somewhere that is rather more convenient for others to use it from: a dependency on kdebase-workspace sucks for most applications, after all. Now libplasma is to be found in the much more amenable kdelibs.

All of the desktop application stack built on top of it (the Plasma desktop shell, KRunner, etc, etc) is still in kdebase-workspace, of course.

The path forward for libplasma is:


  • to continue adding what's needed for creating ever more kick-ass canvas based applications (or canvas based areas within applications) with ever fewer lines of code

  • to start authoring those woefully late high level tutorials

  • to feature complete the various script engines and consider moving some of them to kdebase-runtime in 4.3 so that everyone can rely on having core scripting available in the Plasma based application

  • optimize and stabilize



Exciting times, and far beyond what I'd originally expected. Perhaps the most exciting thing for me, however, is that this marks the start of a period when I can focus more fully on the things we are building on top of libplasma. Such as a better panel than kicker. ;)

4 comments:

BrainDepth said...

Congratulations! Life is always an interesting series of events that never stop to amaze.

Stecchino said...

Congratulations plasma team!

I'm sure November 4th 2008 will forever be remembered as the day plasma moved to kdelibs. Really whatever could be happening today that is worth remembering. ;)

Apart from Amarok and the desktop I also see soooo many possibilities from plasma. Anyone already working on putting plasmoid on devices like an Optimus mini three?

Maki said...

Kudos for moving plasma to kdelibs, plasma everywhere will open a lot of new features, new users & better & biger choice of features than KDE3 ever had.

Porcel said...

Thank you, everyone on the plasma team.

While I am not a friend of re-writes, you guys are doing a great job with kde4 (my biggest issue is that I lose the panel when I connect an external monitor or proejctor to my laptop so I have a hard time showing off my kde4 desktop to co-workers and clients).

If you are ever in Southern Spain, a good vegetarian dinner is on me.