

The Plasma Team The Plasma Team

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



The Plasmate Development Tool The Plasmate Development Tool

Plasmate is the working name for a new Plasma-addon development application. It provides a workflow-oriented tool to make it easy to create Plasma components such as widgets. By providing this kind of tool on top of scripting languages that can be used to create Plasma components, the plasma team aims to open development of Plasma add-ons to a much wider audience. Plasmate specifically targets programmers and designers that are currently focusing on web technologies. This way, JavaScript (or rather its ISO-standardized version ECMA) becomes a first-class citizen to develop Plasma components that can be shared across the network, for example using the new remote widget support or web services such as Get Hot New Stuff, the application-store functionality integrated into many KDE applications.

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



Secure authorization based on PolicyKit Secure authorization based on PolicyKit

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



The new widget explorer with the option

to publish Plasmoids on the network The new widget explorer with the optionto publish Plasmoids on the network

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

Plasma netbook's application launcher page leverages KRunner plugins to provide all kinds of functionality in a full-screen view. Application switching, access to the file index, Wikipedia search, a quick calculator -- you name it, the new application launcher provides it in an appealing way, optimized for portable devices.

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.



Menard also talked about vast performance improvements in QGraphicsView and how these were achieved. For selected use-cases, the performance in handling items on the GraphicsView canvas has been improved by orders of magnitude. Those changes will automatically become available to KDE by using Qt 4.6.

Community and Team-building efforts

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.

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.



Other Achievements

Over the course of the week, the team welcomed a number of visitors, both local and regional. The local newspaper "Walliser Bote" had published an article and interview with Mario Fux, the organizer and host of Tokamak III, which drew the attention of people from Randa who dropped by to take a peek at how the new breed of technology enthusiasts collaborates. The team also welcomed Mark "markey" Kretschmann and Myrian "Mamarok" Schweingruber from the Amarok team during the sprint, and a number of local visitors dropped by to find out about the world of Free Software. Most were attracted by an article in the local newspaper "Walliser Bote".

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.



Martin Grässlin, developer of KWin (pronounced: "Quinn"), KDE's window and compositing manager joined the Plasma sprint to provide feedback about deeper integration between KWin and Plasma, and to implement new border snapping features of KWin, much like the new mechanism Windows 7 provides. This, and the support for tiling and tabbing, which Grässlin told us will be included in KDE 4.4, complements nicely the leaps Plasma is making in this release cycle.

Tokamak III Concludes

With all the work on new features, Plasma developers surely did not forget to further stabilize the current set of features. During the sprint, every day saw annoying bugs being squashed and the less intrusive fixes among them being backported to the 4.3 branch. A more stable set of features will be made available to the users with the upcoming monthly bugfix and translation updates the KDE team provides -- a number of the improvements made, such as the performance optimizations for the job viewer, are scheduled to become available as soon as KDE 4.3.2 comes out next month.

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.