Third Plasma Summit Lifts KDE Desktop To Higher Grounds


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

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

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

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.

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.

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.

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.

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.

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".

Other Achievements

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.

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.

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.

Dot Categories: 

Comments

I am really craving a good remote control mechanism that works through routers/firewalls. Teamviewer on Windows/OSX does that really well.

Did you guys work on vertical panels? At the moment they show only tiny tiny icons for tasks.

I would love to get the speed improvements NOW ;), but I just learned that delaying gratification is a really important skill in life. So be it.

Most of the less intrusive fixes we've applied have also gone into the stable 4.3 branch, so they'll be included in the next release, 4.3.2, which will be out early October. These backports include significant performance improvements in the system tray and job widgets.

If you're talking about the massive speed improvments in QGraphicsView, you'll have to wait until Qt 4.6 is ready. We've tested Plasma (and some parts of the rest of KDE) with Qt 4.6 snapshots, and it looks very promising already.

I was under the impression that the "newspaper layout" doesn't have anything to do with newspaper-like things (news, weather, etc.) per se, but only refers to the layout of the plasmoids, closely packed in columns similar to a newspaper. Was I wrong?

yes, it's primarily a reference to the layout rather than the content. i don't think that long term we'll keep that name visible in the UI.

just because most articles i have read -- ok, that's probably a total of two, one at ars and this one here -- seem to get that confused.

Could somebody please put names to the photo, I don't know everybody there ? :-)

Alex

from left to right there's: me making a funny face next to a funny carving (i was behind the camera taking the photo of the others, so i guess they decided to find the most bizarre photo of me and throw it in there :P ), Riccardo (artwork, various bits of code), Artur (iNdt, working on Netbook stuff as well), Diego (Plasmate), Sebas (battery, network manager, pim-related plasmoids and various communication tasks), Rob (extenders, remote plasmoids), Dario (KAuth), Annie (new widget explorer), Marco (plasma-netbook, libplasma and tons of work just about everywhere else), Ivan (lancelot, kickoff-krunner integration, misc work elsewhere), Alexis (Qt Dev Frameworks where he works on QGraphicsView, also did the device notifier plasmoid and other bits here and there), Davide (lots of work on config dialogs and various plasmoids).

missing from the photo are Chani (various plasmoids and dataengines inc work on microblogger, containment action plugins, widgets on screensaver, other misc bits here and there), Beat (bug triage, wallpapers, various plasmoids) and our host Mario. Markey and Myriam from Amarok also joined us for a couple days.

The foto looks like one of those post-HORDE american jam bands, a Rusted Root, Widespread Panic, String Cheese Incident, etc.. I hope ya'll tried the Swiss cheese while there but also the Emmenthaler, Gruyère, Vacherin Fribourgeois and one of the oldest cheeses in the world, Sbrinz.

>which is named after plasma fusion reactor,
Damn, we wasted nights debating whether Plasma referred to Romulan or Cardassian plasma torpedoes and none of us were right.

>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 new system tray standard provide a D-Bus based interface, >providing a strong separation of system tray needs and their >visualisation.

Sweet lion of Zion! I think this could be it!

Ive been waiting for a way to make the system tray icons bigger for quite some time and from what I understood the system tray icons are presently painted by the application so Plasma doesn't have any control over them.

I have a half dozen relatives who are seniors and had me set up their KDE4 desktops with everything big. To hell with elegant lines, designs with 9pt fonts that tie the flow to the motif, they want big icons, big menu, big taskbars and big, big fonts. The zoom is useful but they ALL love the fact that the desktop icons can be any size THEY want. (My uncle asked "Why it wasnt always like that on computers?")

And while every single icons on the taskbar (application launcher, device notifier,etc) can we made bigger, you can do that with the system tray, even when its not on the taskbar, you can expand it as much as you want but the icons always stay small.
And when you have weak eyesight small isnt fun if you cant figure out the small Kopete, Skype and Amarok icons from each other..

I really hope from what Im reading that the system tray functionality and customizability is on track and a priority.

Now be honest,...
how many of you finished a two foot Toblerone all by yourselves when you were there?
C'mon...

"I really hope from what Im reading that the system tray functionality and customizability is on track and a priority."

yes, and making the icons bigger already works today as long as there are only icons of the new variety (otherwise, to keep the layout nice, the old ones keep everything else smaller).

there are so many benefits, this being one of them, when the shell actually has control over the presentation of things.

"how many of you finished a two foot Toblerone all by yourselves when you were there?"

haha.. the chocolate frenzies were actually quite funny. the Swiss are quite serious about their chocolate intake and Mario had a large box of these wonderful chocolate sticks/bars. every so often a handful of them would get tossed into the room and hackers would dive in from all angles. good times.

(and yes, i've tried Sbrinz .. i LOVE Swiss cheeses!)

"The new system tray standard provide a D-Bus based interface" - probably should be "provides"

I am a long time fan of KDE and really am amazed at what was produced from this year's Tokamak meeting. In terms of features KDE had made some great progress. I wish KDE's performance was a bit better, but I am sure this will also improve if from nothing more then performance gains in Qt.

There is one area I think that has lost a bit of focus in KDE and that is Usability. I know there are focus groups within KDE that discus usability, and I hope this group becomes a little more active in the near future. The area that needs the most help when it comes to usability is the System Settings. There are various configuration panels within System Settings which are far from being intuitive to me be let alone a new Linux user.

Does KDE still have an active usability team, and are they providing any input into each release ?

Maybe System Settings panels just need a little time to catch up to all the feature changes going on in KDE.

Congratulations to the Tokomak Team, and thank you for all the great work.

Regards
David

I see a pattern here that is not in the best interest of the project.

The emphasis should not be on thinking up as many new features as possible, but rather on stability and usability of the existing release.

The current release is only marginally stable and several of the small things from KDE-3 are still missing. And, yes DavidB is correct that more attention needs to be given to usability.