Plasma Active brings a flexible, elegant, activity-driven user experience to a spectrum of devices. This article is an overview of a series of blog posts I will be publishing over the coming days about different perspectives, or view points to Plasma Active.
As Plasma Active is a new user experience and integrated Free software stack for a range of devices, such as tablets, media centers, smartphones in-vehicle infotainment and $NEXT_POPULAR_FORM_FACTOR (tricorders, communicators, etc.).I will take the opportunity of our first release to explain Plasma Active’s underlying ideas in more detail. A series of blog will each tell the story behind Plasma Active from a different point of view. In the first installment, I’ll shed some light on the app story. We’ll look at Plasma Active’s answer to groupware, office and documents, multimedia and of course the web. In upcoming installments, we will look at Plasma Active’s developer story, its user story, its ODM and hardware story, and possibly more. With each installment, I will update the list below as the articles go online.
Plasma Active brings a flexible, elegant, activity-driven user experience to a spectrum of devices. This article is part of a series of articles about different perspectives on Plasma Active. In the first installment, we look at a number of applications that come with Plasma Active. Kontact Touch, Calligra Active, Bangarang and a collection of Active Apps provide a stable and powerful set of functionality, making Plasma Active suitable for personal and professional use cases.
Email & Groupware: Kontact Touch
In the area of groupware and email, Plasma Active really shines thanks to Kontact Touch, a mature groupware suite designed specifically for touchscreen interfaces. Kontact Touch has all the features already known from its desktop counterpart, among which a vast variety of connectors to groupware servers, among which Exchange and Kolab. For on-the-go use-cases, Kontact Touch’s offline features are a big win, making it easy to catch up on what happened during offline periods. Kontact Touch’s email client performs really well on the underpowered tablet, even for insanely large mailboxes with tens of thousands of emails. Since Kontact Touch’s underlying data cache, Akonadi also feeds its data into the Nepomuk semantic store, all the groupware data is not locked into an application, but naturally available in Contour, becoming part of your activities. Kontact Touch supports strong encryptions methods in an audible, open source code-base, satisfying even highly security- and privacy-aware use cases. There is a number of companies offering commercial support and services around Kontact Touch, and its integration in enterprise infrastructure. Kontact Touch with its touch-friendly ergonomic interface, feature set, scalability, groupware server compatibility and strong contender satisfying unique use-cases for enterprise and institutional use-cases, allowing to organically extend an organisations groupware infrastructure onto new devices.
Office: Calligra Active
Another highlight in Plasma Active is Calligra Active. In Plasma Active One, we ship it as a beta version, with a stable follow-up planned for one of the next releases. The first release of Calligra Active will be a capable, performant document, finger-friendly viewer for tablets that can pan and zoom smoothly and display office documents. Calligra comes with excellent support for OpenDocument and compatibility with many of Microsoft’s office applications such as Word, Excel and Powerpoint. With its capable engine, which is also part of the office suite on Nokia’s N9 and its touch-friendly user experience specifically built around Plasma Active, Calligra Active fills another important role by adding dependable office capabilities to Plasma Active devices. Calligra Active builds on top of Plasma Quick and semantic engine, bringing a seamless UX between your activities and documents.
Web: Active Browser
One of the most important applications on a device is the web browser. For Plasma Active, we have developed a touch-friendly and lean web browser that builds on top of WebKit for HTML rendering, and the kdewebkit integration for cookies, network and SSL, caching and cookie sharing. Some of its features, such as AdBlock could be re-used from the Rekonq project. It uses the bookmarks from Nepomuk and shares these with the Contour shell. Building a customized web browser for Plasma Active ended up being the way to go after we had looked at alternatives, such as making Rekonq touch-friendly, or using Fennec, since the work to adapt these browsers really well would have been too extensive. Designing the browser from the ground up allows us to have it perfectly integrate with the Contour workspace and the rest of the system (such as sharing login credentials with widgets or other apps). While the Active Browser provides already a basic set of features, it is still a first release, that being a central part of Plasma Active will see further improvements. There are many good things we basically get for Free through Qt Webkit, such as 100% ACID compliance, excellent support for CSS, good performance and stability and a lot of “just works” for many websites around. The Active Browser does not manage bookmarks itself. It rather makes the currently open page known to Share Like Connect, so you can bookmark a page from the top panel — or connect it to your activity and thereby collect links on the go. Keeping multiple pages open and organized is aided by the peek area at the top, where you can find open pages belonging to your current activity.
For all your multimedia needs, we have pre-installed a slightly adapted version of Bangarang. Bangarang comes with an elegant interface, it provides a stable and feature-rich media player. Bangarang also uses the Nepomuk semantic layer as underlying data store, so its knowledge blends in with the Contour workspace and other applications and widgets. Additionally, Bangarang supports retrieving meta data from various online sources, and adds this lyrics, information about artists to your movies and music to your media. This data is transparantly available in the Contour shell as well. The Now Playing widget can be used as widget in your actvity as a remote control, for example for skipping a song, pause, play.
Bangarang and the Now Playing widget show nicely, how the Activities in the Contour workspace extend and adapt for different use cases. Media can be controlled directly from the activity (more useful for music) or viewed and managed in a fullscreen app. The data is not locked into a single application, and neither is the user. Like Now Playing, there are hundreds of useful widgets already available, as many of them can be reused from other Plasma workspaces, such as Plasma Netbook or Plasma Desktop. We have pre-selected a number of useful widgets, such as notes, weather, calendar, clocks (Plasma is, after all about clocks!), and a few fun others. In principle, all Plasma widgets are installable also on Plasma Active. On top of that, with Plasma Quick, we’ve made it very easy to create new widgets, or adapt existing ones — more on that in a later episode.
Plasma Active comes with a number of powerful applications. These, roughly fall into three categories: Active apps, touch-friendly apps, and everything else. Since Plasma Active builds on top of a well-known Linux stack, many applications from this “eveything else” group are readily avaiable. Among these a huge number of command-line tools which can be used using the Konsole terminal application which we have adapted for on-screen keyboard input. Traditional desktop applications do run on Plasma Active as well, but they might or might not be suitable (or fun to use) on touchscreens. In our testing, we’ve seen varied success from simple showstoppers (“press space to start”) to flawlessly working and beautiful applications. Especially many games are well-suitable for Plasma Active, some even a lot more fun, such as KDiamond, Blinken, or . (You can tell, I’m not much of a gamer. :-)) Qt and KDE’s refined, system-wide UI settings allow us to take a few general measures, such as ensuring minimal button sizes, suitable text sizes, etc..
As it’s easy to install all kinds of applications, we categorizes applications in categories to make it easier for the user to find high-quality applications. Active Apps are applications that are specifically designed or adapted to run in a Plasma Active environment. They work well on a given formfactor, are stable and functional, blend in well with the rest of the system (visually, but also through things like share like connect) and quality-controlled. Examples for Active Apps are the pre-installed webbbrowser, the image viewer, the news reader and of course Kontact Touch, our powerful groupware solution. Touch-friendly apps are a set of applications we have specifically selected to compensate for functionality we have not yet a Plasma Active app for. These apps might not be super-elegant, but do the job well and fill in important functionality. Konsole and kwrite are good examples here, those have been fixed to work well with an on-screen keyboard. A lot of games fall into the same category, there is a good number that work surprisingly well on a touch-screen (Blinken my four year-old nephew’s favourite, KDiamond is mine).
Third Party applications
Users or device vendors can extend Plasma Actives with more applications. Next to a large number of Free software applications, the Plasma Quick stack allows for development of proprietary applications, as its libaries are available under the LGPL license. This allow vendors to extend Plasma Active with product-specific components, and makes available closed source 3rd party components (such as Flash or Skype) on Plasma Active devices.
Where do we go?
Plasma Active aims at creating a desirable user experience for a spectrum of devices, based on a fully Free software stack, developed in the open. The first release is planned for October. In the following article, you can read about the latest status and recent improvements made.
One our way to our first release (begin of October as it currently looks like), we’re in serious make-it-work mode, crunching bugs left and right and filling in gaps of the workflows we want to suppport in our first release of Plasma Active. As we’re a month away from that, it’s a good point in time to give an update of our progress towards Plasma Active One. So where do we stand today? What has been the progress lately?
My overall impression of the state of Plasma Active is very positive. We’ve made some tremendous progress, and are now at a point where we’re confidently calling it a beta. If we continue at this rate, Plasma Active One will be a very interesting first release, and a lot of fun to use. The basic functionality is in place, the focus is shifting from filling in gaps in the UI towards performance and interaction improvements, and bugfixes. In ten days, we’ll be meeting at the Basyskom offices to finish Plasma Active One, plan the release process and communication bits around it and think about what Plasma Active Two will look like.
Contour, our semantic workspace has seen a number of UI flow improvements, better visual hints and ergonomy enhancements. Switching between activities is much faster now, and it has become easier to add Bookmarks and applications launcher to the Contour activities right now, and a few bugs in the wallpaper handling have been fixed. The top panel now drags a lot smoother. Contour feels solid, performs well and really starts to work nicely for every day use cases. I’ve been starting to use the Activities more actively, it serves as a very useful tool, and brings a very innovative concept to the tablet. Most importantly, it adds real value, while not getting in the way. Mad props to basyskom for working with us on this integral part of Plasma Active. The Contour workspace offers resources such as documents, bookmarks and applications), connected to one Activity. As an Activity, you can think of “Planning a trip”, where you’d collect your ticket receipt, bookmarks of the hotel, your reservation) for example. The Contour shell shows those resources, and you can extend this with Plasma widgets which provide additional information, or small apps inside your activities. Activities also serve as launchpad for apps and the webbrowser. On the left, you find the recommendations panel, which are “magically” (based on real science!) provided by the system based on their relevance to the current context. The recommendations are non-intrusive, but turn out to be quite useful during normal usage.
We’ve integrated a few performance fixes in KWin now. One fix is especially interesting, as Kwin now skips disabled plugins entirely in its frame rendering cycle. This makes a noticable difference on a desktop system, but it really pays off in Plasma Active, where we’re using only a very limited number of effects. We have experimental Balsam packages that use OpenGL-ES for the compositor, which fare nicely in my stability tests. Martin has been making kwin a real winner.
The virtual keyboard now works in more applications, some would not pop up the keyboard when needed, which makes konsole for example pretty tedious to use. Fixes for Kate, Konsole and Calligra have already upstreamed. Getting at the ‘second layer’ of keys in the keyboard is also much easier now, as double tapping shift acts as ‘lock’ here. There’s also a good bunch of performmance improvements in there, so typing also feels more swift. It’s now also possible to quickly move the keyboard to another screen edge, in case it hides interesting information beneath it. Aaron has been bugsquasher No#1 here.
The Active Webbrowser has seen a bunch of improvements which make it a lot more usable and enjoyable. New features include that opening windows is now fixed. I’ve implemented sharing cookies across the whole system (using KDE’s cookiejar), uses KIO for loading (and caching) the page content, remembers passwords and completes your text input from the browser history and your bookmarks. KDEWebKit makes all this very easy. Marco fixed Flash support, so watching youtube on your Plasma Active tablet is now possible as well, in that area we’ve successfully surpassed the iPad. ;-) I’ve borrowed the Adblock implementation from Rekonq, so the browsing experience a lot cleaner now, which is especially important on mobile devices where you might be short on bandwidth (blocked ads are not even loaded at all), the screen space is often more limited, and animations used in banners are an unnecessary drain to the battery. The browser is maturing. Features such as Share-Like-Connect extend the web browsing experience naturally to the overall workspace, which also serves as a launchpad for the webbrowser as you can see in the first screenshot. On top of all that goodness, Marco has created a purty icon for the Active browser.
Marco has published an interesting blog with a movie showing Share-Like-Connect, on of the new concepts we’re delivering with Plasma Active.
Aaron explains and demoes the overall concepts of Plasma Active and Contour, its semantic workspace.
If you’d like to read up on the general ideas of Plasma Active, our wiki pages provide an excellent starting point. For our German-speaking audience, the Plasma Active section on the open-slx Wiki is a good place to share experiences and ideas.
Personal wishes go out to Maurice, our tireless Meego-Ninja who broke a finger in a bicycle accident, and Fania, Contour chief-design princess who got married.
The past weeks, I’ve been working on getting Kwin, the window manager and compositor in Plasma Active (and Plasma Desktop ;) to work on top of OpenGL ES instead of OpenGL. After some updating of packages lower in the stack, especially Mesa and parts of Xorg, we now have working OpenGL ES support on our hardware. Today, I’ve finished packaging it as an option on top of our Plasma Active packages. These packages in the :Devel subsection of the KDE:Active repository in the OBS run on top of Balsam Professional and openSUSE 11.4. We will give this some more testing and improve a few things, in order to move to GLES by default. OpenGL ES is very interesting as this is an API often used on mobile devices, so I’m glad that I can state that we’re ready for this. This of course needs proper support in the drivers, something we can not always solve by ourselves. I have been running this successfully on two Intel Atom-based tablets.
All the props of course to to our Akademy-award winning window management and compositing hero, the one and only Martin Grässlin. He’s been working on OpenGL ES support (and a lot of other features to make kwin “ready for the future”) for quite some time already. OpenGL ES support in kwin has been introduced in the recent Plasma Desktop 4.7 release, a few weeks ago.
So, is it much different? Nope, it’s very much a thing of underlying technology. There’s no noticable performance improvement, but it runs stable and well. Given that OpenGL ES support has only very recently been introduced in kwin, it’s already surprisingly good. There is probably still a lot of room for improvement, which is something we can investigate now and easily test much better.
In the screenshot of the Contour shell of Plasma Active, you can see that I’m all set up to go to FrOSCon tomorrow, where I’ll be presenting the ideas and demoing the prototypes, hoping to get some feedback on concepts, and give some understanding of the challenges and opportunities we face in this exciting endeavour. And of course show some serious bling. :) If you’re in the area around Bonn, drop by.
The past week, when working on the Mesa packages for Plasma Active, I might have caused some headache since I broke the compositor in Plasma Active with a few packages I uploaded for easier deployment on test devices. It was not more than an annoyance, because kwin gracefully falls back to non-composited mode in case of graphics problems. In order to get a bit more stability into our deployment process, I’ve now set up a subproject called KDE:Active:Devel under the KDE:Active project on the Open Build Service (OBS) which we use to build the Balsam packages. As we’re moving, development-wise into the stabilization phase for Plasma Active One, this makes testing new things a lot easier, just by switching to the same package from the :Devel branch. Conversely, this means that if you install packages from the :Devel subproject, you should really know what you’re doing. On the bright side, it’ll be easier to keep regressions out of the packages that are deployed on most users’ machines.
Along with these changes, I’ve updated all the packages to the latest state of the art, and worked a bit on our documentation, as we keep getting very good feedback about this. Among the most wanted fixes we’ve introduced is a patch by Aaron that makes konsole usable with the virtual keyboard, making another very powerful tool usable on Plasma Active. I’ve also fixed up some default configuration options, polished up the contour packages and made that used by default. (Those who have plasma-tablet-config on their machine will have to replace it with “plasma-contour-config”, though.) This is another pretty big move, as we now basically regard the contour shell stable enough to make it into Plasma Active One. It’s also very, very shiny I must say, the usual disclaimer about alpha software notwithstanding.
OBS makes it rather convenient merging changes back and forth between these branches. In general, my impression is that OBS works very nicely as a collaboration tool, and solves a very complex problem for us, the “how do we get our code onto the device”. As an aside, it also makes it very easy to build packages locally, so for even shorter development-deployment cycles, one can build locally and rsync packages onto the device. With the right kind of script setup, that takes a lot of the pain away, that development for mobile devices often brings with it. The KDE:Active:Devel repo can be used directly by developers to upload their latest sources in order to deploy them to their testing machines, and we can pull working versions in from there. Rocking.
If you own an ExoPC, and you’re eager to know how to get Plasma Active, our new workspace and set of applications for consumer devices to run on it, this blog article will help you get going.
Note: Plasma Active is in alpha state right now, it is basically usable, but you will find many rough edges. You should not try this unless you consider yourself an early adopter, or if you mind fiddling with bits and pieces. We are working towards an end-user ready product, but we’re not yet there.
What to pick?
There are a few different options to choose from, I’ll quickly explain which to choose under which circumstances.
MeeGo: Works well overall, but is lacking in key areas, for example we do not have a UI to connect to wireless networks yet, and as the device doesn’t have Ethernet (and cables are lame on mobile devices anyway). You can work around this with a trick Marco explains. Choose this option if you want to run and develop for MeeGo
Balsam Professional: Download the Balsam Professional live images from open-slx. This live image provides a fully functional live system without too much hassle. Choose this option if you want to try Plasma Active
openSUSE: Install Plasma Active on top of openSUSE 11.4, it uses the Active packages created by open-slx (me, my employer), but is a bit more laborious to install. Choose this option if you want to run the full experience on your ExoPC, or track progress and hack on Plasma Active
I will explain here how you can get to a state-of-the-art Plasma Active, using what will eventually become the Tablet Edition of Balsam Professional. Balsam Professional is, unlike openSUSE, focused on end-users and the user experience on consumer-level devices. Balsam Professional is based on openSUSE, so you might well be familiar with many of the tools already.
What you need
An ExoPC, or a WeTab
An empty USB stick of at least 700MB
A USB keyboard and possibly a mouse
Note that the installation is possible to do by keyboard only, but a bit more comfortable if you have a mouse available. As the ExoPC does only have two USB ports, one of which will be occupied by the installation medium for the first part of the setup, you either need a USB hub, or a combined receiver for mouse and keyboard. If you don’t have a mouse or the means to plug one in, don’t worry, it’s not really hard to do. In this case, I’d recommend to install the updated kernel package from the KDE:Active repo as soon as the base installation is done, as that makes the touchscreen work, from that point on, you won’t need a mouse anymore. The process should take you about two hours, you might get it done quicker, but should be able to get it running within, say, one evening.
The following points provide a detailed guide to installing Plasma Active and the Contour shell onto your ExoPC, using openSUSE. This process is also explained on the wiki, check there for the latest updates.
Install openSUSE 11.4: Download this image, Use “dd” to write it to a USB stick, or use the excellent imagewriter tool to handle this for you. after this step, you should have a bootable installation medium in your hands.
Insert the USB stick into your ExoPC, boot it and install openSUSE 11.4 onto the machine. It’s wise to enable auto-login, and possibly the SSH server during the installation, since this makes your life a bit easier later on. You need a keyboard for this.
The last line increases the priority (lower value means higher priority) for the Plasma Active packages.
Update your KDE installation to the 4.7 release, this pulls in the dependencies needed for Plasma Active. At this point, you still have a traditional desktop, you now update the KDE stack to the 4.7, and get a few updated packages as well (among them Mesa and a new kernel which is needed to make the touchscreen work and brings much better performance):
Accept all vendor changes.
Make sure the 3.0 kernel is installed (“zypper if kernel-desktop”), if not install it with
zypper in plasma-active:kernel-desktop plasma-active:kernel-desktop-base
Install Plasma Active packages on top. This will install the contour shell, some apps and configure your system to run Plasma Active, including tweaks to the defaut configuration that make the whole system more touch-friendly and suitable for mobile use cases.
zypper in plasma-contour-config
After this step, you have Plasma Active on your system.
Reboot to boot the new kernel, the Active shell will start automatically. If you get a black screen past login, use a keyboard and ALT+F2, “konsole” to get a shell and try starting “plasma-contour” by hand. If the command is not found, as root, do “ln -s /usr/bin/plasma-mobile /usr/bin/plasma-contour”.
Install additional packages, such as Calligra Active (package “calligra-active”) Kontact Touch (package: “kdepim4″) or the kdegames4 suite. Bringing you a nice collection of useful software.
Hop into the #active IRC channel on Freenode.net, tell us about your experiences and help others gettting started as well. =)
On Tuesday at 14:00 UTC and on Friday at 12:00 UTC, we will organize online install fests on #active (Freenode.net) where we can help you with installation issues, and where you can share your experience with others. Of course you’re free to drop by and hang around at any time.
MeegoExperts has done an interview here at the Desktop Summit in Berlin with Fania and Marco. The video explains concepts and user experience in Plasma Active‘s Contour Shell. Have a look yourself to learn about this next-generation user experience for consumer devices, based on our beloved Free Software stack.
I’ve been to the Desktop Summit in Berlin for the past few days, we’re now around the middle of the event, after the conference, before the workshop and BoF sessions, so I thought I might share some thoughts I’ve gathered in idle moments in the past few days.
Boredom and Diversity
Last night, the build system BoF was planned, a team session where we look at the way how we develop our software. I have to admit that to me, this is quite a boring (but nevertheless very important topic). As it also affects the way we release software, I’ve put my release team hat on and joined the session. I was a bit afraid that since it’s not the most sexy topic in the world, that little people would show and we end up with incomplete or broken ways to release the KDE SC, and KDE Frameworks in the future. My worries were ungrounded as quite some people showed up and we made good progress on all the topic we talked about. (If you’re interested what we talked about, keep an eye on the kde-core-devel and kde-buildsystem mailinglists.) What struck me is that in KDE, there’s enough people who feel responsible, even for boring topics. When I shared my (ungrounded) concerns with Stephen Kelly, he looked at me with this empty expression on his face and told me “but that’s exciting, it’s the way we build our software!”, and given his enthusiasm, I believe him (even if I don’t exactly personally share his excitement). Diversity makes us strong.
Collaboration and Sustainability
While during the last desktop summit, in Gran Canaria, there were really two co-located conferences, and for my taste we missed some opportunities to sit together with our GNOME peers, this aspect is much better this time around. I’m not sure wether it’s because we all figured out that we have to work more closely together, or if the setup of the conference enables us to work together more closely, I just see it happening. In fact, we sat together with a bunch of GNOME guys until late last night, discussing challenges the Free software ecosystem faces, and possible solutions to these. We focused on these shared challenges instead of the diffferences in our approach, and the differences in our community. We did think much more as one community, than as two.
My current focus in KDE is of course Plasma Active, and our team of designers and hackers is fully using opportunities this event gives us to get the word out about Active, and establish it as our answer to the Freedom needs on consumer devices. Just like Matthias set out 15 years ago to conquer the desktop, to provide a Free, coherent, integrated and complete set of applications for users of desktop computers, we are setting sails to also reach this goal for a wider spectrum of consumer devices. We held a bunch of presentations during the conference track already. Martin Grässlin kicked that “Plasma Active track” off, talking about Kwin and Wayland, me doing a more general overview, then Marco and Fania explaining concepts behind Active’s Contour shell, and finally Ivan having us peak into how Nepomuk smartens up our devices by closely listen to what we do. The feedback so far has been fantastic, and I think we’re a step closer to reaching our goal of unifying our efforts regarding consumer devices, such as tablets, smartphones, media centers, and whatever will be invented.
Last week, Marco and I have integrated a new window switcher into Plasma Active. We had designed and started to implement this rather central component of the shell during the Tokamak sprint a couple of weeks ago, now it finally made its way into Active, so you can update your system to the latest packages and enjoy it. (In order for it to work correctly, you’ll have to delete your plasma-tablet-appletsrc file, as we do not update these automatically at this stage of development). The new window switcher works very well, and is quite snazzy on top of that. It also contains an application launcher! I’ve recorded a small demo video showing these new features.
The idea is to have a non-modal interface, which means that the window switcher does not block, but allows to interact with other applications that are currently in focus. For this, we use a panel which can be dragged down partly or completely from the top, revealing a strip of windows that is horizontally flickable with the finger. This way, it works for only a few windows, but also scales quite well for those that want to have more apps open at the same time.
The implementation is a bit hacky, but only in the background. It is in fact a combination of QML and KWin’s compositing effects. We are basically catching move events, "polishing" these into a more straight stream of events which we then pass to KWin, asking the window manager to paint thumbnails of the windows at a given position. While we didn’t know if it would work at all when we came up with this design, luckily it turned out to be nice and very usable.
The new panel also has an app launcher, which allows you to launch an app. As the user might potentially have lots of apps installed, there’s a "tag cloud" which lists categories of apps (you tap on one and it shows only apps in the category), and a search field you can use to find apps. (There’s a theming problem which affects readability in the tag cloud, we’ll fix that shortly.) As the number of apps available might not fit into the available screen space, you can flick the apps grid horizontally to reveal more apps.
These features have already been merged into the KDE:Active packages on the Open Build Service, and you’ll be able to try them on your device with the next Balsam Professional Live image.
What do you think about these new pieces in the UI?