Last week, the third Plasma developers meeting was held in the Swiss Alps. 15 developers from 3 continents came to Randa, Canton Wallis to work on Plasma's code, design new ideas and concepts and to strengthen their bonds as a sub-community within KDE. Topics of this third Plasma sprint, which is named after a plasma fusion reactor, included but were not limited to Plasma on mobile devices, network-enabled Plasma widgets and a richer user interface thanks to a new animation framework. Furthermore deeper integration of web services in the Plasma shell, semantic awareness of Plasma components, secure privilege elevation and polishing of the existing functionality, among many other things, were on the agenda. The results of Tokamak III are, with all due modesty, nothing short of mind-blowing and display the health and swift pace of development of the whole KDE community. Plasma lead developer Aaron Seigo wraps up "It's been one of the longest KDE sprints ever, and after a week, we're all quite exhausted. Looking back at the results, however, the we have shown impressive progress all over the KDE desktop shell. We're reaching out to new use cases, new developers, new devices. Meanwhile the social aspects within the Plasma team continue to impress me. The Plasma team has grown into a small community, a group of friends that have set out to revolutionize the desktop. With the previous KDE releases, we mainly focused on providing and improving existing technology, now we're pushing the boundaries of the Free Desktop. Looking at the results that have materialized over the past week, this is the Plasma promise coming true. And we've only just begun..."
Remote Controlling KDE
Dutch Plasma hacker Rob Scheepmaker presented the results of his work on sharing and controlling Plasma applets and KDE applications over the network. He presented how the user can easily share locally installed widgets over the network. As an example, he showed how to share the "Now Playing" Plasmoid with other machines and users on the local network. The "Now Playing" Plasmoid can now be used to control the media player running on another computer, all using KDE's Plasma technology. Under the hood, a number of technologies for communicating, orchestrating and announcing local services is used. For announcing the availability of an applet on the network, the Zeroconf protocol is used. The orchestration and transferring of applets, data and control commands happens using the JOLIE and QtJolie technology. The remote widget support is another long-planned feature for Plasma which will become available in the 4.4 release, as Scheepmakers worked hard to ready the API and polish the user interfaces to meet KDE's standards for inclusion in a main module. "The remote control of a media player on another computer is only the tip of the iceberg of what we make available across the network. Prepare for some completely new and truly innovative collaboration and interaction features coming up using this unique new technology", Scheepmaker lets us know.
Plasmate Development Update
New System Tray Standard Matures
Plasma core developer Marco Martin a.k.a. notmart has readied the implementation of the new System Tray standard for inclusion into kdelibs and merged it as part of KDE's core UI framework. The new system tray standard provide a D-Bus based interface, providing a strong separation of system tray needs and their visualisation.
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. 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. The categories "System Service", "Application Status", "Communication" and "Hardware" are available for application developers to choose from. 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.
The Plasma team has designed the new standard during the previous meeting, Tokamak II. A first experimental version has been released with KDE 4.3.0, the Plasma developers around Marco Martin have now merged this work as stable into KDE's trunk, 6 months after starting the design work on it. The new specification is being discussed on Freedesktop.org's xdg-devel list for adoption as Freedesktop-wide standard.
KAuth Provides Secure Privilege Elevation
KDE developer Dario Freddi presented the work of his GSoC student Nicola Gigante during Tokamak III. The project's aim was to provide fine-grained user privilege elevation using the FreeDesktop.org PolicyKit technology. PolicyKit provides a D-Bus interface offering control for actions that can be run in a different user context, for example by running certain commands as root. Freddi readied the KAuth library for inclusion into kdelibs and integrated it with various elements of the user interface, such as the Date and Time configuration module in KDE's System Settings. He also added a specialized version of a KPushButton for application developers that can be attached to a certain action to be run with elevated privileges. This makes it almost trivial to provide direct manipulation of system administration tasks in a secure way, well integrated in the user interface and the set of policies the underlying operating system provides. "KAuth currently works on Linux and Mac systems, support for the Windows platform will be added soon", Freddi explains. More work on integrating KAuth into System Settings and other parts of KDE is needed, but the work up until now surely paves the way to a more secure and at the same time more user-friendly integration of KDE's desktop and applications with the underlying OS.
New Widgets Exporer
Plasma designer Ana Cecília Martins Barbosa presented the work she did within this year's Summer of Code to her fellow Plasma developers. The new widget explorer has been developed using a design-driven development approach. Based on the research results AnnieC gained within the first part of her SoC project, she subsequently implemented a completely new way of adding widgets to the Plasma shell. During Tokamak III, she implemented additional feedback from fellow developers and was able to merge her work into KDE's trunk development tree, meaning that it will be available as part of KDE 4.4 in January. The new widget explorer provides a more beautiful and usable interface for adding Plasma widgets to the desktop or netbook shell and integrates better with other Plasma components such as the Panel controller which is used to manipulate visual and layout aspects of panels in Plasma. While some more polishing is still needed, the whole team is happy to see yet another Summer of Code project come to fruition.
Plasma Netbook Shell to be Released in January
Plasma developers Marco Martin and Artur Souza demonstrated the new Plasma Netbook project, a user interface specialized to be used on netbook devices. The Plasma netbook shell has moved to the kdebase module, making it part of KDE 4.4. The netbook shell is built around constrains on these kinds of devices, in terms of screen space but also optimized for use-cases around the web. The Newspaper page of the Plasma netbook shell provides direct access to information from the web that is important to the user, such as news on interesting websites and weather information. These are only the first step of deep integration of the web into KDE applications and Plasma, more steps towards this direction will become apparent in the next months.
New Anchorlayouts Enhance Canvas-Based Interfaces
INdT and Plasma developer Artur Souza presented a project, his team and the Qt developers in Oslo have been working on over the last months. The new Anchorlayouts provide a way to position user interface elements relative to each other filling a gap Plasma developers have been experiencing when experimenting with new ways of layouting UI elements on the Plasma canvas.
KDE and Plasma on ARM
The Plasma developers worked on running KDE on a so-called "mystery device", a working name for a class of relatively low-performance devices based on the ARM architecture. As a reference device, the developers used a 800 Mhz ARM CPU with 512MB of RAM. During the sprint, KDE 4.2's Plasma was presented running on the device. The overall performance was quite good, although it showed room for improvement. Even without having an accelerated graphics driver available at this point, the developers were quite happy with the performance so far as Souza a.k.a Morpheuz reports on his weblog. Using Qt 4.6 on the device gave another boost in speed. "Even with the short time available to make Plasma run on the device, and without having a proper graphics driver available, we can now be sure that running Plasma on this class of devices is absolutely feasible. I'm sure that, with a bit more integration work, Plasma will offer a premium choice for UI technology on this new class of devices." concludes Souza.
Plasma Team Provides Input and Feedback to Qt Developers
Alexis Menard from the Qt team presented the innovations in the new version of the Qt framework. KDE, and especially Plasma will be able to benefit from vast performance improvements in the QGraphicsView canvas. The addition of Qt Kinetic enables Plasma to easily animate various parts of the UI, using this standard framework. The addition of Qt Kinetic marks a milestone is what can only be described as a successful collaboration between Qt Development Frameworks and Nokia. During the first Tokamak meeting in Milan, Italy, Qt engineer Andreas Aardal Hanssen had presented the plans for a standardized and shared animation framework in Qt, oriented, amongst others, towards the need of rich, canvas-based user interfaces. Subsequently, the Plasma developers have provided use-cases, feedback and API reviews to make sure that Kinetic meets its users' needs and provides the tools necessary to enhance UIs built on top of Qt with smooth and natural animations while being easy to program. During the second Tokamak meeting in February 2009, Qt and Plasma developers Menard presented an example of the Plasma picture frame using kinetic to animate transitions between images in a slidehow. Qt Kinetic will be part of Qt 4.6 which has recently entered feature freeze and will be released in late 2009. The Plasma developers have taken the first steps to be able to use Kinetic in KDE's upcoming release, 4.4 which will be released in January 2010. In the course of the week, a Google Summer of Code project to integrate Kinetic into libplasma has entered review stage, and will probably be merged into KDE's upcoming release branch in the next weeks.
Another new piece of technology the Qt team is working on is QML, the Qt markup language. Menard gave an update of the progress in this field, after Plasma developers had provided an initial round of feedback earlier this year. QML is an implementation of the declarative UI technology that will make it easier for designers to build rich user interfaces on top of Qt. The Plasma developers are looking forward to use QML in order to make it easy to build Plasma components in a visual way, much like Qt designer does for traditional widgets.
Community and Team-building efforts
An important aspect of this kind of developer sprints is the team building and bonding aspect. Getting away from their keyboards every now and then, the team had a daily nature walk. With the terrific surrounding of the Oberwallis, the scenery provided a unique opportunity to re-charge the batteries and talk about various things off-line for a while. Experience with this kind of focused developer meetings has shown that personal interaction is an essential ingredient for good collaboration online. Activities off the keyboards included hiking in the surrounding Swiss Alps, building a dam in a mountain creek and going up onto the "Kleines Matterhorn", one of the mountains surrounding the valley at a height of approximately 3800 meters. The atmosphere in Chalet Nachtigall, (the "Plasmaniac Mansion") was very family-like with the daily lunches and dinners, where everybody sat around a table. In terms of productivity, the results of this meeting are nothing short of impressive.
The performance of the job viewer in the new Plasma system tray has seen some major performance optimizations. Davide Bettio has overhauled the structure of Plasma's configuration dialogs in an effort to reflect the mental model of the user closer, rather than the technological structure of these components. Sebastian Kügler presented his work on a new, netbook-friendly Plasma network management applet and a work on integrating information from the Akonadi PIM storage framework into Plasma. Chani Armitage has further polished the work on mouse plugins for Plasma she conducted as part of her Summer of Code project. Artur Souza has separated the back- and front-end of the Plasma pastebin widget. This widget now consists of a Plasma applet and a dataengine, making it easier to share this web service between applets. Ivan Cukic has worked on Plasma's context, a service using the Nepomuk semantical framework as provider of context information. In the future, this will be used to adapt applications and the Plasma shell what the user is doing, where he is and other environmental constrains. Cukic, who is the main developer of Lancelot, an innovative application launcher for Plasma and an alternative to the KDE "start menu" Kickoff, integrated KRunner plugins into KDE's default application launcher. While Kickoff is in theory a competitor, or rather a replacement for Lancelot, Cukic showed great team spirit by implementing this substantial improvement into KDE's default setup. KRunner plugins are used to provide matches for the search bar which can be found in Plasma's application launcher, making this technology more accessible to everyday users.
Tokamak III Concludes
The Plasma team thanks the KDE e.V. for providing funding to the team, which made it possible to bring people from all over the world together in one place to collaborate on KDE's primary user interface. Special thanks go out to host Mario Fux, who not only provided the unique premises of Chalet Nachtigall in Randa, but also took care of all the needs of the developers. Fux already showed interest in organizing another sprint in the beautiful Randa, if your team is interested, get in contact with him. Tokamak III was certainly a very unique experience and enabled the developers to fully concentrate on work while gaining new inspiration and ideas. Without the KDE e.V.'s financial support and the friendly support of Mario Fux, this would not have been possible.