An update on Plasma Addons

Since my last blog post on plasma addons there has been a lot of activity, existing contributors are active on their own plasmoids, and there are many new faces coming on to take up the challenge of maintaining their own small part of Plasma.

What's been happening

All Plasma 5 development has moved to the master branch, ready for the 5.1 release.

Aleix Pol finished porting the quickshare applet which allows uploading text and images to a pastebin server by clicking and dragging. Xuetian Weng completed the Input panel plasmoid, that allows for entering chinese characters and Kai Broulik finished the Fuzzy Clock plasmoid. I started the notes plasmoid, which is close to being ready for review.

The VDG have been active in designing the ported applets, with the help of kver the system load viewer applet changed significantly:

A small bit of polish makes a huge difference to the end result, and Martin Yrjölä has been leading the porting process of that.

Spring cleaning

We are constantly adding new things so it's important to clean out old code at the same rate. We need to remove applets that failed to be maintained, or are simply gathering dust and only invest porting effort in what is useful.

With this I am sad (well, not really) to announce:

We've dropped the bouncy ball!

I know several people liked this applet but when trying to develop a professional experience toys and gimicks aren't a good thing to be shipping by default. The user's desktop is not a showcase for us to experiment with.

That isn't to say we want to police what people make and use, developers are still able to distribute all content through kde-look or other services, we are just making the most of our main distribution channels.

Getting involved

There are still several plasmoids that we want to have available to Plasma 5 users, that are seeking maintainers. Unless people step up to both port and maintain them, it won't happen. So if there's anything you use regularly and miss, please look at the TODO and talk to us on #plasma.

Randa Part 1: Gwenview on Frameworks

In the first few days at Randa as a coding task between meetings I took on porting one of the larger core applications to Qt5 + KF5. Having applications on Qt5 is not only important for when we make the wayland move as they can run natively but it also ups the motivation to add new features into Frameworks and move technology forwards.

I decided to take on Gwenview because the maintainer, Aurélien, is on a break from KDE and requested somebody took over the task. When I started in KDE Aurélien was one of the coders I most looked up to, so I wanted to pay back and make sure his work lived on.

The screenshot below shows Gwenview ported to KDE Frameworks 5.

Everything is now pushed to the master branch. The core loads, but there's quite a lot of warnings where we haven't ported away from the KDE4 support libraries; it's a great opportunity to get involved on some simple code fixes. Message me if you want to help out.

If anyone is else looking at porting make sure to make full use of Montel Laurent's excellent scripts in kde-dev-scripts. They make a massively painful task only slightly inconvenient.

Plasma Addons – Where we are in Plasma5

When we were building towards 5.0, we made the choice to focus all the effort on the core, and not release plasma-addons. It would have been simply too much work and quality of the core would have suffered.

The intention was to start bringing them back from 5.1, which will be in approximately 2 months from now.

The amount of stuff in plasma addons is huge. This screenshot shows only a small sample:

My genuine KDE4 desktop

The Plasma Addons is a very mixed bunch of code, it contains some useful tools that really improve productivity such as quickshare, notes and icontasks. However, it also contains broken code, duplicates, tech demos and a range of toys and gimmicks of questionable value.

These things are fine to have these available as internet downloadable extras, but should they form part of an official addons?

It becomes a tricky question, we want to provide a quality professional experience to a user, but we also don't want to stifle developer creativity and we want to give our devs an even platform to distribute their work.

Due to the nature of the changes we made in Plasma4->Plasma5, in many cases the porting invovles a complete rewrite of the code base. It's therefore a good opportunity to give the repository a spring clean, so we only intent to port things that will be picked up by a dedicated maintainer and not port everything for the sake of porting.

Getting Involved

As each plasmoid is very standalone, it's a good opportunity to get involved in development. If you have a personal attachment to a plasmoid that you use on a regular basis, we would love people to step up to port and maintain it.

We have a tracking board here:

If you want to take any tasks, ping me (d_ed) on #plasma on Freenode or email the plasma-devel mailing list.

A Wallpaper Plugin Demo For Plasma 5.

As part of the core Plasma team I have spent a long time helping in the migration to make everything QtQuick2.0 based, making sure we get the most out of the OpenGL backing.

This weekend I wanted to make some sort of demo which shows the power of this in the form of an interactive wallpaper.

Clicking on the desktop simulates a firework at that location. Frantic clicking will simulate the entirety of November the 5th (or July the 4th for people across the pond). When not active the whole thing only uses as much resources as any regular static wallpaper.


Download the complete zipfile here.

Install with the command line

plasmapkg2 -t wallpaperplugin -i

Then under "Desktop Settings" change the wallpaper type to "fireworks".

Why on Earth would I want this nonsense on my desktop?

Realistically this isn't something that would ever go in the default desktop installation. However by getting good at silly initiatives, we build and optimise for useful things; smooth subtle animations and shadows where it's actually useful.

I want to make something like that!

The actual source code is fairly straightforward.
The QML Particle system is very much like the particle system found in Blender (The main similarity being that I don't understand how to use the particle system in Blender) with emitters and affectors.

In this case a circular emitter forms the base of the firework emitting a burst of coloured particles in all directions; a trail emitter then follows each coloured particles emitting a spread of small white particles to create a sparkly trail effect.

With the power of particles, sprites and even embedding other OpenGL framebuffers, I encourage more people to write some interesting interactive wallpapers.