Dashboard: A KWin effect plugin

I wanted to learn Qt, so I started off by reading some KDE source files and making small cosmetic changes here and there (e.g. GUI improvements for the NetworkManagement plasmoid, adding blur to some plasmoids). I also patched KWin’s change screen OSD, which was missing the blur effect. This was the first time, I got my hands on KWin code.

The KWin people on IRC have been kindly helpful (thx mgraesslin, notmart, sebas and everyone else). When I suggested to patch the Plasma dashboard code in order to have the dashboard blur its background, a discussion started that this should be done by a KWin plugin.

Said, done. I had a look at some other KWin plugins which looked easy enough for me to understand and used them as template for my first own KWin plugin. Needless to say that I ran into a bazillion problems! Not only the KWin infrastructure was the first hurdle to take but also some Plasma internals wanted to be learned. And all this while I had to remember my poor C++ skills, which were almost non-existing so many years after having been to university. Luckily, I managed to dig my way through. I wanted my effect plugin to be configurable, so I learned about the concepts behind Qt GUIs and used Nokias Qt Creator to build a nice looking configuration dialog, where you can adjust brightness, saturation and even can add some fancy blur to the background (who would have thought? *G*).

And without any further words, I present you the result of my work during the last weeks:

There are still some few glitches to fix. Since KDE SC 4.5 is already in feature freeze, there is no need to hurry. As soon as 4.5 is branched and the trunk opens again, I will post my work to the reviewboard for discussion. I am really looking forward to have this plugin included in KDE 4.6.


13 Responses to “Dashboard: A KWin effect plugin”

  1. marv
    12. June 2010 um 18:14

    since this is a plugin, it would be cool, that you release this plugin on kde-look.org before kde sc 4.6. this would also enable you some more feedback, like bug-hunting ;)

  2. sheytan
    12. June 2010 um 18:24

    Really nice! Maybe some dude will backport it to 4.5 :D Would be cool :D

  3. zak89
    12. June 2010 um 19:22

    Nice work! I love the blur effect for the Dashboard – stunning! Man, 4.5 isn’t even out yet and I can’t event wait for 4.6!

  4. Alejandro Nova
    12. June 2010 um 19:28

    Since you’ll have time, how about making a zoom out effect like the MacOS Dashboard effect? I’m looking forward for this ;).

  5. Bugsbane
    12. June 2010 um 21:08

    Nice work!

    This is definitely one of the nicest places to use blur (along with panels) imho. Not just because “everything looks more bling with blur!” as it’s sometimes used, but with a purpose of (literally) focusing the user on the information / tool at hand and using blur to downplay distractions (like the background windows here).

    I’ll definitely be using this when it comes out.

    Hey, one idea (if the video drivers are fast enough)…

    It would look gorgeous to have the lightness / saturation / blur all transition in when used. By that I don’t mean you fade between the initial image and the altered image, but that blur quickly animated between 0 to 100% of what it was set to (so you briefly see it blurring), as did the darkness (so you see it fade to darker) and saturation (so you see it fade from full colour to black and white) etc.

    I’m talking the same time frame as the animations for windows opening and closing, so it’s quick, but just noticable.

    Anyway, thanks for adding to KDE’s already beautiful look. This effect looks fabulous!

  6. Antonis
    12. June 2010 um 21:10

    Really impressive, can’t wait for it to be included in KDE.

    Thanks for your work!

  7. Andreas Demmer
    12. June 2010 um 22:49

    Unfortunally, this plugin required some changes in Plasma and kdelibs, too. So I cannot release this standalone without the need to recompile both Plasma and kdelibs from scratch.

  8. maninalift
    13. June 2010 um 11:07


    Fading between initial and final state, where the initial image is unblurred and the final is blurred, though it is not equivalent to animating the blur distance delta, might create quite a believable “unfocussing” transition (particularly as the animation would last only around 250ms). You’d have to see.

    As for saturation and brightness, fading between the final and initial images would be equivalent to animating the variables.

    Given the frame-rate of the youTube video, the transition might already be animated and we wouldn’t know.

  9. maninalift
    13. June 2010 um 11:09

    ps nice wordpress theme

  10. Andreas Demmer
    13. June 2010 um 11:58

    @maninalift, @BUGSBANE: My effect is not yet animated but this is already planned for the future. I agree, this would enhance the experience. Right now, the window zoom in effect handles the dashboard which makes animation hard. For 4.6, we want Plasma to flag the Dashboard so that KWin effects can spare it out and leave in/out animations to the Dashboard effect.
    @maninalift: Thx for the comment on my WordPress template, it is completely designed and coded from scratch by me.

  11. Obi-Wahn
    13. June 2010 um 17:33

    The plugin looks very nice! I’m looking forward to KDE SC 4.5 AND 4.6 :D

  12. Andreas Demmer » Dashboard Effekt-Plugin: Stand der Dinge
    26. June 2010 um 17:29

    [...] habe ich meinen Patch des Dashboard-Effect Plugins für KDE zum Review eingereicht. Aaron Seigo und Martin Gräßlin (zwei KDE Urgesteine) haben mir viele [...]

  13. Andreas Demmer » Dashboard Effekt-Plugin nun im Trunk!
    23. July 2010 um 22:48

    [...] der Feierabende meiner letzten Wochen in den KDE SVN Trunk committed: Die initiale Version des KDE Dashboard-Effekt Plugins für KWin. Damit ist das Plugin offizieller Bestandteil der KDE SC 4.6, die Anfang 2011 erscheinen [...]

Leave a Reply