Excited states of Plasma
From WorkOutWiki2008
Contents |
Proposer
Adriaan de Groot is vice-president of KDE e.V. (the organisation which supports KDE development) and a long time KDE contributor. He worked in PIM stuff first, for handheld synchronisation, and has since moved on to portability and cross platform issues, mostly around Free Software operating systems that are not Linux (FreeBSD and OpenSolaris). His relationship with Plasma (one of the pillars of KDE) is relatively new, and the excitement shows.
Purpose
Get involved in Plasma development; this WorkOut focuses on building Plasmoids (reusable graphical components). We will look briefly at the underlying technologies. Since Plasma forms the basis for the desktop containment (i.e. the workspace, what you see as "the desktop background") it is also a wonderful place to put persistent applets, ambient information sources (e.g. system monitors) as well as doing some initial start-up eye candy. For instance, Starting KDE closer to the User (Piyush's WorkOut) might be done as a plasmoid, or at least a get started launcher could live there.
Abstract
We will aim for a quick schedule that gets us on the same page technically and then sets us hacking: - build system overview, compiling basic plasmoid - exploring the plasmoid and data engine tutorial - brainstorm session for plasmoid ideas - converted hacking
Prerequisites
Knowledge of C++ and some Qt coding; a working KDE4 development environment is definitely needed to get started here.
We will start with a Plasmoid tutorial to make sure everyone can get through the basic build for Plasmoids. This double-checks that your KDE C++ build environment is sane. We suggest either a Linux + gcc 4.x environment or OpenSolaris with SunStudio 12 and the latest patches (but not Studio Express).
Goals
We'd like to have two or three teams working on plasmoids (of their choice) at the end of the session.
Results
The schedule collapsed very quickly. Dealing with the differences in development environment proved more difficult than expected. Notes for next time:
- mention -devel packages
- mention that Fedora and Debian -devel packages are very different
- explicitly define versions of build tools (cmake, automoc bumped between branch and trunk)
- set participants a C++ program to comple before the workout
By making sure everyone has a complete working build environment before the WorkOut, we will save a lot of time (the Linux kernel guys got that right). As it was, we used up about two hours in sorting out all the dependencies. Having a slow network and no instantaneously available packages didn't help either.
In the meantime we did run through some other parts of the schedule that could work in parallel. The Plasmoid tutorials were examined, tweaked, built, rebuilt and gave a good show of what is possible. The idea collection phase followed and we listed a bunch of interesting topics to work on. Stock tickers, countdown timers, keyboard LED displays (there is one in review, and it doesn't work very well), EBN applets, all that kind of thing.
The last half hour of the workout, when we had finished brainstorming and discussing how each of the plasmoids would roughly be used or look, that was the most impressive. People spontaneously organised working teams for some of the plasmoids and split off to do the actual hacking. We had to leave the audiotrium to make space for the next talks but that did not stop the earnest hackers. They moved en-masse to a corner of the FOSS expo to continue working. By the end of the day several proofs-of-concept had been produced and everyone was having a good time.
I don't think it's an exaggeration to say that there's now seven new plasmoid contributors for KDE. Congrats, guys.

