Friday, April 27, 2012

A bit on KDE Activities

KDE Activities is a concept that has been pushed forward by KDE developers for many release cycles now. Despite of that, lots of people still find them hard to understand, or don´t see the difference with virtual desktops, or simply find them useless. Personally, I used to think they were not for me, but as with many things, it´s hard to judge without trying them for real, so that´s exactly what I did.


I often feel like Activities must have been designed by extremely organized people. In other words, yes, isolating some tasks from others does help at times, but creating that isolation sometimes takes more effort than simply living within a bit of chaos for a little while. Besides, the implementation still needs work.

The idea is there, don´t get me wrong, but the features are not. In other words, activities are often presented as a clever idea that has a lot to offer, but then the reality is that KDE often falls short to offer all the potential activities need. I personally believe that the level of isolation available for activities is still too narrow, so some of the things that can be activity specific (like widgets) don´t offer enough value to actually justify creating a new activity. Luckily, KDE SC 4.8 brought further isolation with it thanks to the introduction of activity-specific power profiles, which is a nice step forward, but more like it is needed. One thing I miss, just to give an example, is the ability to have activity-specific panels. One other thing I miss is better "advertisement" for Activities. Starting with the accompanying examples and templates all the way to some of the videos out there, the material is most often failing to depict what Activities have to offer. The most recurring example I have seen is that of using activities to store information specific to an upcoming trip, but I don't believe that's a good example.

The way I see it, I can´t be bothered to create a separate activity for something as trivial as a trip, specially considering the minimal amount of specific information I can get from widgets, which is mostly down to weather forecast (and well, let´s face it, KDE plasma weather widgets are not that good). The real interesting information, perhaps about monitoring ticket prices to get the best possible deal, tracking trustworthy weather forecasts that span over 10 days or keeping up with travel agency updates cannot be offered by widgets. Now, it could be argued that one can keep an activity there with the browser pointing to the travel agency website, but I tend to think bookmarks are a much simpler and elegant solution. Last but not least, it's important to recognize that lots of people don´t have the time or the interest to plan their trips (or anything for that matter) so carefully (have you seen the average Windows user desktop, populated with an average of a trillion icons?), so I think Activities should be presented in a different way, perhaps closer to real end-user needs.


Activities provide some level of isolation, but in order to be truly useful, they need to provide more. As of KDE SC 4.8, we finally got something truly value adding: activity-specific power profiles. This comes extremely handy when users want to easily tailor their computer behavior to the task at hand. Have a presentation coming up and you want to avoid any kind of power saving while you are sharing your slides with an audience? No problem, simply create an activity for that. Note that this is way more powerful than switching to a specific power profile, because not only the computer behavior is customized, but all other things Activities offer are there too.

In my case, I use activities to somewhat encapsulate very specific and recurring tasks, often linking them to certain power profiles. While I didn´t see value in using activities for something as short lived as planning a trip, I do see value in isolating recurring tasks like coding, watching movies or downloading torrents. My default Activity is my desktop:

Click on image to enlarge.

Obviously, this is where I spend most of my time and where most of the short lived tasks sit. Internet browsing, checking emails, listening to music and things of the like all take place in here. The rest of activities capture tasks that require time and focus (that´s where isolation helps), or maybe things where lots of files are often open at once (like comic books), again making the most of isolation.

Click on image to enlarge.

Downloading torrents is one task I come back to often. Because torrent files can be quite big and take long time to download, I will often leave my computer on for hours, time during which it must not go into suspend mode. As a result, I linked this activity to the power profile On AC power. In addition, since these files are often quite big and my disk space is not awfully big on this box, I keep the disk space monitor widget on to make sure I don´t run out of space, as well as the Ktorrent widget to easily track download progress from the desktop.

Click on image to enlarge.

Another thing I spend time on is coding, trying things here and there with bash scripts, QML scripts, etc. As such, I like to keep Kate open on the session I am on, as well as Rekonq pointing to reference guides or tutorials. In this case, no specific power profile is necessary, but I like the fact that this kind of isolation helps in focusing on coding alone quickly and easily.

Click on image to enlarge.

Below are some examples of the power profiles I link to my activities. When I watch movies, I want absolutely no power saving features to take place, so I customized things for this one specifically.

Click on image to enlarge.

When downloading torrents, I simply want the computer to stay awake for as long as the battery lasts, but using some of the energy saving features. Again, On AC power fits perfectly here.

Click on image to enlarge.

Other activities like the default one, coding or reading comics don´t need specific power settings, so they follow the default setup.

Click on image to enlarge.

So there you have it, nothing particularly clever nor complicated, but I hope that some of these examples help understanding where activities might come in handy. I do wish that development continues around this concept, though, because with further isolation, things can get much more interesting. Another feature that I am excited about is one that Aaron Seigo brought up recently when discussing Plasma Active: Password protected activities, which is quite interesting a concept for increased levels of privacy on a single computer.


  1. Hi, this is one of the Great post I ever come across. It helps me lot to understand the "Activities". I like to see one thing in Activity panel where the user can select the icon(for example:if the activity is "Watch Movies", the icon should represent the activity)to represent that activity. Thanks once again for the wonderful post.
    -Bas from India.

  2. Thank you for your feedback!

    You can actually choose whatever icon you want for an activity, so what you are saying about movies is perfectly doable... I just didn't bother.

  3. Hi, you've persuaded me to have another look at Activities which I've always found cumbersome and never really saw the point of in the past, if only to try and replicate the power profiles functionality of 4.7. Do you have any idea where to access the CPU frequency settings in 4.8, though? I used to have a power profile which I could access via the battery icon which selected the "performance" cpufreq governor. This was useful for gaming (certain games tended to behave strangely if the CPU frequency changed while they were running) and watching movies (the CPU would slow down during "low-action" scenes then the video would stutter when some action came along until the CPU went back to full speed).

    For the time being, I've put a couple of icons in my application menu to run cpufreq-set but it's an ugly hack.

    (Also, have you noticed that the battery run-time estimate has once again gone AWOL? It used to be in the tooltip for the power management settings on KDE 3, then vanished for a while in KDE 4, then reappeared around 4.5 or 4.6, albeit requiring a click on the icon to bring up the settings popup in order to see it. Now it's gone from there again.)

  4. I think CPU settings vanished as part of the simplification they attempted with 4.8. As for the time estimation, I believe KDE developers don´t like it, because it is a wild guess at best. I think it is a bit of a struggle for developers, because they don´t want to include it, but users think it comes handy.

  5. Yeah!
    I dream for implementation of the sessions storing in all applications with different activities.
    For example I am composting music and use jack server with lots of connections, applications opend and effects optioned. But I need it once at month so keep it is not right and open each time too.
    Unfortunally non KDE applications don't have sessions. Libre office for instance.