Yesterday was the first full day for Tokamak 4 with most of us having arrived from near (e.g. right here in town) and far (Brazil, Canada) the day before. We had a great series of presentations to catch each other up on where we are right now and where we are going. I opened the proceedings with the usual "state of the plasma" presentation where, after recapping the motivations and core design values we had defined together over the past couple of years, I likened our efforts to those of a sculptor. We had before us just raw materials, a rough-hewn stone if you will: Qt4 with QGraphicsView in it's earliest infancy, KDE 4's libraries and a simple vision. Inside that block of stone, we envisioned a masterpiece just asking to be found and released from the stone. After working for a couple of years we have something that has real shape, great scale and impressive momentum. We are at the point where we need to "finish off" many parts of this living, dynamic structure with the small, fine details and leave behind a perfectly smooth surface finish. The rest of the presentations, given by various of the nearly 30 attendees, were great insights into what this work before us would entail.
Lubos and Martin talked KWin and window management in general and were followed by Nuno discussing the state of Oxygen. Then came Marco, Alexis and briefly myself again giving overviews of the state of Plasma Netbook, Plasma Mobile and Plasma Desktop, respectively. Ivan and Chani then presented on the topics of context, activities and Nepomuk's role in this. Dario and Lukas shared their work on Shaman, which is essentially what Solid is to hardware but for software installation, with us. Sebastian caught us up on the ideas behind and code available right now for Silk, a long-term project that aims to bring greater access to online and web services to users of KDE software, and Will gave a good presentation about network management (including how we have 3 people working on finishing the network manager Plasmoid this week!). Mirko from OpenWrt gave a short, but interesting, presentation on what OpenWrt is and showed off a very cool, very tiny open hardware device. We finished off with a presentation given by Frederik and Frank on Open Collaboration Services and the Attica library that makes accessing such services easy (and how it has improved the Get Hot New Stuff UI in KDE SC 4.4) and a recap by Savago on where we were with the Plasma animation framework.
Day two saw some code getting written but the real highlight were the team meetings. Plasma Mobile took it's first real steps with presentations on embedded development, build systems and some demos. The group then split into two smaller break out groups, one focusing on getting a proof-of-concept workspace interface built with KDE Plasma for "pocketable" devices. The goal of this break out group for Tokamak 4 is to have something demo-able on the Jax 10 devices that were sent. This will be a fascinating test of the flexibility of the Plasma framework and how fast we can make new things with it.
The other group focused on putting together a survey of the KDE Development Platform from the perspective of usage in mobile applications. They managed to generate dependency graphs for the libraries in kdelibs and worked on strategies for improving the modularity of the individual libraries. It is better than any of us really expected, but there is still room for improvement. They also surveyed kdebase-runtime and picked out the necessary bits from there for a non-desktop KDE foundation. The goal of this group is to have something to present to the KDE libs development community on Thursday.
Five of us also got together to discuss KWin and Plasma Desktop issues, both in terms of being individual apps as well as how they overlap or, rather, should work together more effectively. A good set of plans emerged, including: the need for a tiny xlib based application to manage screen edge interactions so we can unify and harmonize features like panel autohide, effect triggers in screen corners and changing desktops by "pushing" against edges; a list of new desktop effects we need in KWin to get rid of various hacks in Plasma Desktop; a list of new window types that plasma-destop and krunner can use to give KWin more information about what is going on so that KWin can be more sophisticated in its handling of these windows (e.g. dashboard, the krunner window, ...).
Then there was the context-and-activities meeting that was held. Building on Ivan's work for storing context definitions in Nepomuk (so that places, recent documents and more can be associated with an activity), an API draft for context and triggering changes in applications when it changes was formed. Related to this was the application launcher meeting which was all about harmonizing the code between the various launchers and how to get raptor back on the rails. Context also loomed large in those discussions. This year will be a really, really interesting one on the context front in Plasma Desktop, I think.
A few people had to leave today, but there are well over 20 people still with us. We moved to the hostel just up the street from the OpenSuse offices, which is in an old stables house that is part of the old city wall. It's now 20:30 and I'll be going to find some food soon, but the fact that we still have so much ahead of us is all I can really think about right now. Foundational code written for the topics we've hammered out so far needs to be written and there are other topics we'll be covering in the days ahead such as the next steps for the animation framework and SVG usage advances. We have four more full days ahead of us and it will be interesting to see just how much we manage to accomplish and how much more we will achieve in the months to come as a result.