Over the last weekend, the Plasma team held their second meeting in Porto, Portugal. The meeting was organised by Akademy Award winner Nuno Pinheiro inviting the Akademy Award-winning Plasma team to his home country. The meeting was kindly hosted by the Departamento de Engenharia Informatica (Department of Software Engineering) of the Instituto Superior de Engenharia do Porto. The Plasma team (and most probably many of the KDE users) are grateful for being provided this opportunity to collaborate on the desktop.
The purpose of Tokamak II was to design features and concepts to be worked on over the next year in Plasma and the KDE desktop. Topics covered included: animations and other new features in Qt 4.5, Social Desktop concepts, desktop search, email and calendaring integration, a new system tray implementation, Plasma for educational desktops, mediacenters and PlasMate, a content creation application. On the zeroth night, the team went out for dinner to the historic center of Porto. The first morning began with an introduction by the Plasma singer/songwriter Aaron Seigo, who asked the Plasma team to keep innovating and not fall into maintenance-only mode.
Qt developer Alexis Menard showed what are the beginnings of a new animation framework that will become part of Qt in the 4.6 timeframe. Kinetic makes it easy to add animations to applications. It also includes a new state machine framework. Kinetic will probably be offered as an add-on on top of Qt 4.5 so that developers (such as the Plasma team) can take advantage of these new features and at the same time provide feedback to the Qt team to make Kinetic rock even more. Alexis mentions that a first Kinetic version will become available in the coming weeks, depending on how quickly the Qt team can incorporate the feedback the Plasma team gave on the current version. Alexis posted a screencast of Kinetic in action on his weblog.
The New System Tray Specification
In a group session, the Plasma team has been working on improving the system tray. Two aspects are planned to be improved. The job-tracking feature that was added in KDE 4.2 will see some fixes for some interaction problems and will provide an improved display for running jobs. The icon that is currently only shown when there are running jobs will probably receive some kind of activity information, a collated display for on-going jobs.
Work on a new specification for the system tray started as well. The goal is to make the system tray more accessible, more consistent in its interaction model and more flexible with respect to displaying its contents. A new implementation of this might be seen as soon as KDE 4.3. The idea is that applications register with the systray and provide icons, titles and tooltip information to display. Those systray gizmos have a status ("passive", "active" and "needs attention"). The application ("client" of the systray) receives event from the systray, those events are for example "requesting context menu at position x,y", wheel up/down event, or "activated". Systray "clients" have categories. Currently planned are the categories "System Service", "Application Status", "Communication" and "Hardware". A package update notification for example would be in the category "System Services". When it's checking for updates, it would change its status from "passive" to "active", when new packages or updates are available it would go into "need attention" and ask the user if she wants to install the updates.
OpenDesktop and OpenID
Work has continued to implement support for the OpenID authentication system to the OpenDesktop service. OpenDesktop is a central part of the Social Desktop concept Frank presented at Akademy in Mechelen, Belgium last year. Support for OpenID is coming up on that platform. Frank mentions "Support is complete as of 5 minutes ago, but will probably not be deployed until I was able to extensively test it. Expect it to hit OpenDesktop (and along with it kde-apps.org and kde-look.org) next week."
Every application on kde-apps.org now has its own knowledge-base with user-generated content. This information can be queried through a webservice. Support for integrating this information in Plasma (and the KDE desktop) is coming up. Frank is also implementing support for selling content through the OpenDesktop system, tieing in nicely with the content creation application the Plasma team has just commenced working on.
These efforts represent the start of efforts to bring Social Desktop concepts into the Plasma workspace shell by both OpenDesktop and Plasma developers.
Artur Souza talked about the importance of integrating scripting capabilities into Plasma, and how a content creation application would accelerate development and adoption of Plasma and in extension KDE. PlasMate is this new content-creation tool for Plasma. The idea is to make it very easy to create and publish scripted Plasmoid. PlasMate will provide a metadata editor, a script editor, a previewing component. It will take care of packaging and publishing your newly created Plasmoids. Work has commenced on the various components, and the preliminary results are looking promising. Most of the components are partly working already, after only two days of work by a group of hackers.
Jolie and Services
Kevin Ottens has continued his work on intergrating the functionality of Jolie (a service concertation framework). The Jolie integration moves Plasma forward towards the ability to move Plasma services, widgets and data around on the network, and to control Plasmoids and applications across the network.
Improved and New Plasmoids
Blingbrother Marco Martin presented his work on the Video Plasmoid, working towards bringing mediacenter-like features to Plasma. Anne-Marie Mahfouf presented new Nepomuk integration features of the Picture Frame applet, which integrates the Picture's meta-information into the Plasmoids context view. (The Picture Frame also serves as an example for Alexis and the other Trolls' / Qties' work on Kinetic you can see in Alexis' screencast.)
Your editor presented three new Plasmoids to the team. The NetworkManager Plasmoid approaches a first stable version, thanks mostly to the guys from the OpenSuse team for their work on the infrastructural bits. The NetworkManager Plasmoid will probably be ready for review by other developers within the next two or three weeks. The Crystal Plasmoid, which is supposed to be a testing ground for new search-related concepts received some bugfixes, as well as an update to the support for MediaWiki searches based on Richard Moore's MediaWiki class (which can be found inside the Crystal sources in case you're interested in using it).
Lion Mail, which is a new Plasmoid that has been started during the recent CampKDE on Jamaica (hence its name) will make Email from Akonadi accessible on the desktop. The concept of Lion Mail is to display collections of Email from Akonadi (think "Unread Emails", "Emails tagged as Important", "Emails belonging to a certain project or context") in the panel or on the desktop. It also contains a Plasmoid that displays the metadata and contents of an email on the desktop, changing the amount of displayed information based on the available size. The basics of this Plasmoid are in place now, it will probably be released with KDE 4.3 as it is based on the Akonadi PIM storage. Lion Mail feeds from the Akonadi dataengine, which has been extended to offer contact information to Plasmoids. A dataengine allows easy access also for scripted Plasmoids to all kinds of data.
Zanshin as a new application and framework developed by Kevin Ottens. It's based on the Getting Things Done philosophy and will provide todo and task management to the desktop.
During Tokamak II, some developers have upgraded their Qt version to the release candidate of 4.5. Performance seems to have improved quite a bit. The team has also found some minor rendering issues with the new Qt version. Through collaboration with the Qt team, those issues have already been addressed.
Some issues the Plasma team encountered with Qt 4.4 have also been resolved in the new version, the most notable being the resizing of QGraphicsLayouts which are extensively used by Plasma. In KDE 4.2 some Plasmoids contain workaround for these issues to make the Plasmoids work correctly with Qt 4.4. Most of the workarounds could be removed in KDE's trunk which is to be based on Qt 4.5.
It also becomes apparent that some of the workarounds KDE 4.2.0 that are required for Qt 4.4 might not behave correctly with Qt 4.5 since they rely on broken behaviour in Qt 4.4, which has now been fixed.
A possible solution for this would be to provide a set of patches that remove those workaround to make KDE 4.2 work well with Qt 4.5. Another possible solution would be to add conditional code pathes for Qt 4.4 and Qt 4.5. The Plasma team is currently looking at solutions for these issues.
Davide "Beard" Bettio has been integrating information about holidays into the Plasma calendar widget and along with it also created a dataengine to make this information available to other Plasmoids in an easy way. Marco Martin has applied his magic to various visual glitches in Plasma. Artur has improved the Pastebin Plasmoid (a drop area in Plasma that posts the dropped content to a "pastebin" server for easy sharing across the Net. Smaller fixes have also gone into the Microblogging widget, but also into various stock Plasma components that are shared across Plasmoids.
The meeting has been very productive and provided great opportunities for the Plasma team to bind closer together, to develop new ways of interacting with your data and applications and to continue working on existing features making them better, more integrated and more beautiful. Many bugs have been hunted during the meeting, not all of them in software. Your editor is still recovering as we speak.