What’s going on with Activities in Plasma 6?

Nothing! That’s the end of the blog post! Go back to what you were doing!

Well, sort of. 🙂 Some of you may be aware that a year or so ago, there was a lot of chatter about what to do with the Activities feature in Plasma 6: change how it works, remove the feature, or leave it be.

There’s broad consensus within the KDE developer community that the Activities feature doesn’t work the way we want it to. Its scope is conceptually unclear, it’s a frequent source of bugs, and it isn’t really maintained. As a result adoption in even our own apps has been low. It was for these reasons that over time we removed many of the entry points for Activities in the UI, and why I eventually proposed removing it entirely.

However the best way to to find out how many people are using something is to remove it! And the second best may be to propose removing it. 🙂 Many people showed up to offer their passionate pleas to keep the feature, explaining what they were using it for. Interestingly, many admitted that the feature didn’t really work very well out of the box and that they had done custom work to bend it to their use cases.

For this reason, several people stepped up to propose an overhaul of how Activities works, taking into account how the feature’s users actually use it. A lot of discussion ensued, and a few changes were merged. One was that Activities migrated from Frameworks to Plasma, which stripped it of its API guarantee and opens the door to us making major changes within the Plasma 6 lifecycle. Another change was to remove the per-Activity power management setting.

Unfortunately not much happened beyond that. As a result the status quo remains largely in effect for Plasma 6: the Activities feature has not been removed, overhauled, or even substantially bug-fixed. It remains a quirky and somewhat buggy DIY feature for adventurous users to build custom workflows around, and today it’s more hidden-away than ever if you don’t want to use it.

However, I don’t expect this to continue in the long term. Once Plasma 6 stabilizes and development resources are pulled off constant bug-fixing, attention will inevitably turn to Activities once again. So consider this blog post notice that the feature is at risk of being eventually removed if people don’t step up to contribute technical work to either fix existing bugs, or else overhauling the feature to work differently.

Personally, I’d like to see Activities morph into a feature whereby each activity has a separate set of settings and config data, but access to all the same user files. On top of that, you would be able to configure individual apps you use in multiple activities (like music players) to use shared settings and config data.This way it would basically be the “profiles” feature that many web browsers have now, but applied automatically to any and all apps you want.

But, like all desires and ideas, that personal idea of mine means nothing without work to transform it into an implementation! So if you use and enjoy Activities, or think you’d like to if they worked differently, please get involved. We’ll need your help if this feature is to remain!

47 thoughts on “What’s going on with Activities in Plasma 6?

    1. The one feature I’m missing for better activities integration is per-activity default applications.

      Like in MIME-types as it already works for different default applications in the start menu?

      I use them mostly to have “namespaces” like normal and work. As I have the same in the Firefox via container it would be great if this could be combined.

      Personally, I’d like to see Activities morph into a feature whereby each activity has a separate set of settings and config data, but access to all the same user files.

      I would like to see even the files be able to be partitionierend. This could be done via vaults (also a feature I had problems with), via per activity filters in Baloo and Dolphin.

      The more Flatpak takes over for things like non free and untrusted work apps. I would like to contain them into there activity and protect the rest of my user session from them. So maybe hooking into flatseal, systemd usw. could help in separating the normal, bank and work activities? The other untrusted code I run on my machine are games so a activity to contain them and maybe also optimize for performance at the same time could be the killer feature!

      There all the new shiny desktop technologies like Wayland, portals, cgroups (freeze/unfreeze) and criu.org around, it would be a shame if activities wouldn’t get a proper updated vision.

      How amazing would it be to have activities work like containers in Firefox and KDE could move even running applications between machines in the same network for a synced user?

      Liked by 1 person

    2. Like in MIME-types as it already works for different default applications in the start menu?

      Basically what the Default Applications KCM sets, at least from the user’s perspective.

      I have built an automation script for my use case that sets the default browser per-activity, and that both updates the `kdeglobals` config file as well as the relevant `x-scheme-handler`s for xdg-mime – so I’m assuming any change to default applications (as per the KCM) should also change those.

      I’m not so sure about changing actual MIME types (as per the `File Associations` KCM), mostly as the UX for that is going to be problematic.

      Like

  1. Yeah, this was brutal… Either someone who uses and likes them programs this or it’s gone. So for regular user the only hope is that some developers actually use the feature and are willing to fix it. At least it’s fair 🙂

    I personally use activities quite a lot, but I use them as separation of projects I’m working on, including desktop wallpaper, different pinned apps, different konsole windows, dolphin windows, FF profiles, etc.

    For example, I have a separate FF profile for each project in separate activity, I actually like when I click on FF icon, I did not get to chose 9 FF windows (in case there is no activities), it just shows the one in the current one.

    As far as I can tell, there is no need for separate power management or the like. I have never read the docs what activities were proposed for, nor what are the super features they provide and I don’t know about, I just used them as I saw it fit my worklow.

    Theoretically I could try to contribute code, but I have a very busy schedule, I’m not familiar with QML and I feel even if I invest time for months just to learn this, I could not use that knowledge anywhere else or the feature will disapear anyway, then all goes “under the cats tail” 🙂

    Maybe there is a possibility to arrange sponshorship for this somehow.

    Like

    1. Replying a bit more info and context to myself 😀

      My activities setup is 9×2 (activities x virtual desktops), I could probably get rid of desktops or of desktops are rewamped simular to activities, then there will be 9 desktops 🙂

      One of the reasons, besides not liking G3 at all, why I switched to KDE, was activity concept. Cool thing, for my workflow they can be slimmed down, I just like and I am benefiting customized separation of work using activities.

      Like

  2. When they were first introduced, I really liked the idea and the concept of activities and I still think it has a lot of potential. Unfortunately, most of it was wasted and especially in the beginning they weren’t working well, which gave them a bad image.

    I know there was a big discussion about activities vs. virtual desktops and that some people made an argument that they can coexist. While that is true in principal, I don’t think it’s the right approach. There just is too much overlap between the two designs, such that you’d constantly ask yourself why you have both at all.

    Because of the above bad image, I know that a lot of people would be angry if KDE would decide to push activities and remove the virtual desktop feature, but I still think that is what KDE should do. Or at least that or remove activities. activity started as kind of “virtual desktop 2.0”, but it sometimes feels like people gave up half way.

    In a proper and full implementation of activities, there just is no point in having virtual desktops at all. In theory, you could do everything you do with virtual desktops, with activities as well.

    Right now, activities work fine on RC2 (I’m actively using them). But there are so many places where virtual desktops are actually better integrated into the environment, like shortcuts, UI elements, function of widgets or other UI elements etc.

    So I’m hoping that activities finally get more attention again and are developed into a full virtual desktop 2.0 that even the virtual desktop enthusiasts will like.

    Like

    1. I think, people would not complain on Virtual Desktop removal, if we allow to dynamically create/remove activity and to share selected settings between activities, like wallpaper, group of windows, etc.

      Like

    2. I would argue the opposite: if anything needs to be removed, it is Activities, not Virtual Desktops.

      It was a unique experiment by some KDE developers which came at the cost of crippling Virtual Desktops. A few users liked and used it, but the majority use Virtual Desktops.

      Like

  3. IMO, I would like to Activities be completely removed. But the whole it concept overhauled:
    1. implement STWM (Scrollable Tiling Window Manager) like e.g. https://github.com/peterfajdiga/karousel which would serve for window management.
    2. current Workspaces would serve for Activities (having different wallpapers, separate widgets, separate windows remembered to open)
    3. app profiles are hard ones, but tangling them to Workspaces is somehow possible

    Thanks, !!KDE Plasma Forever!!

    Like

  4. each activity has a separate set of settings and config data, but access to all the same user files

    And the user might also want separate Desktop folders…

    Maybe instead of doing it in the application level, we can make the home dir a union filesystem. Then the user gets to choose share/unshare per directory or even per (application config) file.

    Like

    1. If your activities can have both their own settings and also files, then you’ve re-invented the concept of multiple home directories that you switch between. 🙂 Personally I’d draw the line in the sand at configuration. If you can have per-activity configuration, but not per-activity files, then the feature remains distinct enough from just setting up multiple homedirs.

      Like

    1. I don’t care if are different now, my proposal is to make them the same concept. The simplicity of virtual desktops and the configurability of activities.

      Like

    2. I agree with that approach. In fact, in my user experience I tend to value the features that Activities offers more than the concept itself. And some features are compatible with the “virtual desktop” concept. For example: wallpapers and application launchers per virtual desktop. In fact, the level of customization that exists right now is very interesting when you choose the selection color option taken from the wallpaper and those colors change when you change activities with different wallpaper. Certainly, the concept of activities is different from the concept of virtual desktops, but I don’t see why many of the features of Activities cannot be implemented in Virtual Desktops, if Activities are removed. After all, they would be configuration options not enabled by default but available to the user…you know: simple by default and so.

      Like

    3. but I don’t see why many of the features of Activities cannot be implemented in Virtual Desktops, if Activities are removed.

      Because you loose one dimension! X activities * Y virtual desktops will flatten to Z “spaces”.

      Activities only look and switch like virtual desktops but are more like a namespace or a scope if our a programmer.

      Like

    4. Because you loose one dimension! X activities * Y virtual desktops will flatten to Z “spaces”.

      Yes, it is true that activities can work as an virtual desktop’s multiplier. On the one hand, I used them that way; On the other hand, it divided activities by type of work (office, multimedia, development, graphics, etc.), while dividing that work into virtual desktops. Come on, the way I understood they should be used.
      For example, you are diagramming a magazine with Scribus on a desktop within the graphic design activity, while you edit the bitmap images with gimp or krita on desktop 2 and the vector graphics with Inkscape on desktop 3 and so on. Then in the multimedia activity, you do the same as in the graphic design activity, etc.
      However, going to the concept of desktop multiplier, in theory it works but in practice it is terribly cumbersome. Why? Because you don’t have visual interaction between windows and activities, on the one hand, and between activities and virtual desktops, on the other. And visual interaction is the better form that a concept turn concrete. That is, you don’t have something like an “activity grid” or “overview of activities, desktops and windows”.
      I’m not a programmer, but I sense that implementing something like this must be difficult to do and maintain. Getting to that level of interaction, IMHO necessary, between activities, virtual desktops and windows must be difficult to achieve.
      That’s why I agree with simplification: merging activities and desktops. Take the best of both worlds and go forward.

      Like

    5. And visual interaction is the better form that a concept turn concrete. That is, you don’t have something like an “activity grid” or “overview of activities, desktops and windows”.
      I’m not a programmer, but I sense that implementing something like this must be difficult to do and maintain. Getting to that level of interaction, IMHO necessary, between activities, virtual desktops and windows must be difficult to achieve.

      Not every body needs a graphical representation but I guess it wouldn’t be too hard to duplicate the desktop cube into a cylinder rotating along the X-axis vor activities and shifting from left to right for the virtual desktop. A 2D grid to quickly move between virtual desktops in and between activities also doesn’t sound too hard to implement – especially if the activities fundraiser mentioned below will happen 😉

      Like

    6. Not every body needs a graphical representation

      I agree with you. That’s why I said that visual interaction is the BETTER way to realize a concept, but nowhere did I claim that it was the ONLY way.
      In any case, if it really is relatively easy to advance in the integration and development of the Activities and Virtual Desktops concepts, that would be great news. And if a fundraising campaign is developed and is successful even better. The comments I made about merging activities and virtual desktops were made under the assumption that it seems that it would be easier to develop and enrich one concept than to do it with two and, on top of that, to fully develop the interaction between both concepts. But if it is possible to do it, just great!

      Like

  5. Plasma Activities is a great feature! It already offers different desktop layouts with different widgets per activity, different favorite apps in the app launcher and it splits my 18 desktops into managable chunks of 6 (with the help of the activity pager). In my case, nothing’s missing so far. But it would be a real loss, if you had to remove it due to lack of developer interest. At least for me…

    Like

  6. So I was using AnyDesk to remotely interact with a large square screen on a smaller widescreen one. I removed the window decorations so I would gain a little more space, then further switched the panel to autohide so I would gain even more. But, of course, I didn’t want to use autohide all the time.

    AHA!! That’s the day I start to use Activities productively.

    And that was actually the day I found the only feature that would ever have made Activities truly useful to me is the one thing Activities couldn’t do (different panel settings)

    Oh well.

    Like

    1. This is why I think Activities need to be separate stores of configuration data. That way you can customize whatever settings you want in each activity. Unless we do this, we’ll keep running into cases where people say, “Ah, I’d love Activities if it supported per-activity $THING_THATS_DIFFERENT_FROM_WHAT_EVERYONE_ELSE_WANTS” If we make all settings be per-activity, people are free to change whatever settings they want in each activity and we don’t need to kill ourselves trying to opt in every single thing.

      Liked by 1 person

    2. But you must integrate this settings into dialogs. Settings dialogs should inform, which settings would be current activity aware and user should be able to change this. Many changes in Frameworks system settings, I think. And a lot changes inside plasma.

      Liked by 1 person

  7. I use it as glorified virtual desktops. The only thing that catches me in is the per-activity task list and per-activity recent items and file/folder history. I have 3 activities, one “main”, a “mobile” and “alternative”. Main is my main work workflow, mobile is when I need to develop mobile stuff (which has their own projects/tools open) and alternative is when I have to branch from my main activity into another (eg: bug fixing) and needs another set of tools/projects/documentation open. Its like 10-12 task items open each activity, using them makes tab switching easier and avoid cluttering the task bar

    Like

  8. please do ‘ot remove activities! It is THE killer feature none other desktop or OS has. It should be an open desktop standard in order to have support from other apps.

    Like

  9. Maybe use FUSE and some onion fs to implement activities profiles? There will be always lower-read-layer from normal profile and user could select, which app will save onto higher layer. But… What happens, if app, under GNOME, save to lower layer?

    Like

  10. I have two simple questions, but I guess the answers might be technically complex.

    1°) Why not offer the user the option of using either virtual desktops or activities, but not both ? In other words, making virtuals desktops and activities mutually exclusive.

    2°) Would it be possible to make activities deactivatable and therefore optional ? It seems to me that the proportion of Plasma users using activities has always been very low, ever since the Zoomable User Interface, as such most users only use virtual desktops.

    Thanks for your time.

    Like

  11. So while testing using “isolated” activities, the last scheme I used was the following:

    • Start app within bwrap
    • On bwrap, “fake /home”, with “/home/real_home” and “/home/activity_home”
    • Make “/home/activity_home” the $HOME env
    • Manipulate “XDG_CONFIG_DIRS (and same to XDG_DATA_DIRS) to look at “/home/activity_home” AND “/home/real_home”

    I noticed that this way, most apps “defaulted” to configured settings (in main or not isolated activity), but allowed to be “customizable” for each activity that was isolated.

    This setup worked well and works great for “project activities”. I currently am not using it (and missing it. The shear pleasure of opening a konsole terminal/dolphin fm and having all the files of that project right handy or having firefox just continuing on your work is great!!!). But anyway, stopped using it because didn’t manage to find a proper compatible way to “launch” the app “with activity isolated” within kde. (launch the app through the script that uses bwrap and manipulates envs).

    There were some other issues:

    • For example, the activity desktop “should” be activity aware and portable. It would be great to “archive an activity” or “copy it to another computer”.
    • It would be great to have “.desktop files” just for some activities. (plasma being aware of “activity .local/share/applications and .local/share/icons)
    • When using kde file picker I could not make it “activity folder aware” (this was probably my biggest issue). (selecting files on isolated apps would not show the isolated activity home)

    Anyway, TL;DR: if one creates a new /home/activity_folder and keeps the “real home” folder, one can manipulate XDG_CONFIG_DIRS and XDG_DATA_DIRS to use “common settings” and allow customization for new settings. Its a great workflow for “specific project” cases, just missing some support from plasma.

    Like

    1. I completely forgot about bwrap in my above list of “new” technologies that emerged and/or are in the works, and will make KDE activities even more of killer feature.

      So per activities env would make the multi home, that Nate mentioned above, and settings possible then? Could it really be that easy and only a new set of env var pointing to the “global/traditional” XDG_* vars plus a search order would be needed to enable global settings plus overwriting them in activities? I guess this would also have the benefit that not activities aware apps would just fallback to not support global defaults, which isn’t too annoying?

      Like

  12. It’s great to hear that Activities are safe for now. Activities are a unique feature that sets KDE apart from other DEs. Unfortunately, I think both the confusing name and KDE’s muddled documentation make it hard for users to appreciate Activities’ utility. They aren’t just like virtual desktops!

    The name “Activities” might be better known for GNOME’s version which is something else entirely. Meanwhile, documentation fails to make clear that Activities can be used in conjunction with desktops and each Activity can have multiple desktops.

    Activities allow you to do far more than separate widgets; they let you work in different spaces. In fact, “Spaces” would be a more accurate name for Activities.

    I suggest that a good first step in reinvigorating this awesome feature would be to rename it and then improve the description of its functionality in the KDE documentation.

    Liked by 1 person

    1. Agree, I never understood why there where activities when you had virtual desktops. A cause of this was the lack of documentation. Reading this blog post, it seems activities is what I always wanted on my windows work pc. You only know what you miss when you know it exists.

      Like

    2. KDE’s “Activities” exists well before GNOME’s activities, which are only Virtual desktops. KDE’s “Activities” are not spaces ! They are not Virtual Desktops (which are litterraly more spaces to put windows !).

      KDE’s Activities are meant to organize, well different activities (for example different work projetcts). It’s frustrating that people doesn’t seem to know what they are and yet want it to disappear or be mixed with something else).

      Like

  13. What’s important to note: if activities are useful to e.g. <1% of the users, then I’d argue we don’t have the resources to maintain this, and time would be better spend in better docker or flatpack/snap support.

    Personally, I believe KDE also needs to sometimes make bold decisions, and in this case I’d opt to simply remove it.

    Like

    1. I’d say that’s where the problem becomes circular:

      Activities are conceptually great but lack a good implementation, so that only few people really use them.

      Improving Activities and making them become popular will likely generate many users and add a big + to the outstanding features of Plasma.

      Thus I strongly vote against removing them.

      Like

  14. I wish kactivitymanagerd could stop floating around in my PC’s memory since I don’t use activites. It used to be possible to disable it with chmod -x, but last time I tried that KDE stopped loading until I gave that x back.

    Like

  15. Nate, what do you think about a dedicated fundraiser for Activities? I’d immediately spend another 100€ as I have done for the Plasma6 fund raiser.

    Like

    1. It’s a good idea, I think. I’ve been absolutely blown away by the success of the current Plasma 6 fundraiser. If we could get similar performance and advertise something like, “If we raise 100k€ in this fundraiser, we’ll be able to hire two professional devs to implement the new Activities system on a part-time basis”, that would be amazing. It’s something to consider, for sure. And maybe if it works, we can try it for other projects, too.

      Like

  16. When thinking about a “game mode”, I suddenly realized it might be the use case for Activity. “Game mode” should toggle a bunch of options all around KDE: disable the Shake Cursor effect, maximize brightness, disable sleep, switch the governor to “performance mode”, etc.

    Similarly, the “presentation mode” probably should also turn on “do not disturb”.

    So it’s not a completely new set of options, but toggling a subset of them. I don’t know if it fits in the Activity concept.

    Like

  17. One thing activities needs is an in-plasma explanation that explains what it is and why someone would use it. The name doesn’t really make clear what it even is.

    Is it a configured workspace for a given project type (graphic design, programming, gaming)?

    Is it a time tracking method to see what apps are used when?

    Is it a collection of plasma settings?

    Is it a way to control how apps launch with complex workspaces?

    At one time I might have known what it was but if I did I have already forgotten.

    Like

    1. The Welcome Center app contains a brief explanation. But I agree, we need to do a better job of advertising and explaining the feature. Part of the problem is that it doesn’t really work in the way most people expect it to work, or think it works, so I think we need to overhaul what it does first.

      Like

  18. Hi Nate 🙂 . I just-finished reading your-Blog-post “What’s going-on with Activities in Plasma-6 ?” https://pointieststick.com/2024/02/06/whats-going-on-with-activities-in-plasma-6/ . I would-like to put-in my 2 cents / offer my-Feedback.

    First-off, the first-time I used KDE-Plasma was in Manjaro-Linux 21.1 “Pahvo”. Unfortunately I encountered alot-of-problems-&-trouble using-it, because [unfortunately] Manjaro had-moved alot-of-settings around. AND WORSE, they didn’t-tell ANYBODY WHERE they had moved-them-to. No guides. No tutorials. No “for your information / just so you know”-things. No nada.

    It was extremely-difficult for-me to follow-the KDE user-guides [that were [written[-]]on text, and the-ones that were in YouTube-videos], because everything was changed-around.

    Fortunately I-found “Nicco Loves Linux”‘s YouTube-videos, and “Michael Tunnell”‘s YouTube-videos, and they two helped-me learn how to properly-use KDE.

    Also: “Nicco Loves Linux”‘s video https://www.youtube.com/watch?v=qAI2NDJadDM was-the-one that helped-me learn how-to-use “Activities” (which I discovered by-accident when trying “Super-key + Tab”, which is the key-combination for “Windows Flip 3D” in Windows Shitsta (my nickname for Windows Vista”; my other nickname for it is “Windows “Hasta la Vista, baby” Vista”)), and the video https://www.youtube.com/watch?v=fWKbZlPI12Y was-the-one that-helped-me figure-out what-the-difference-is between “Activities” (which, before-watching Nicco’s video, looked the-same as “Virtual Desktops”) and “Virtual Desktops”.

    Now, I think I-should—tell-you how-is-it that I came-to-be Introduced to–Virtual-Desktops. A friend of mine introduced me to Virtual-Desktops by means of installing a software-program called “Norton Desktop for-Windows-95” into my AST-“Advantage!”–tower-computer containing Windows-95 in it.

    Seriously, I-dunno how anyone lived WITHOUT Virtual-Desktops before. WHAT AN INVENTION! :-O .

    That being said, I-discovered that there were lots-of-occasions in-which I needed “virtual-desktops WITHIN Virtual-Desktops”.

    Example:  I have a virtual-desktop for School assignments (class assignments & class projects; etc), and a virtual-desktop for Home assignments (Homework assignments), and a virtual-desktop for Home-stuff not-related–to Chores & Home-assignments (example: looking-up the latest walkthrough for Tomb-Raider-1996, or the latest walkthrough for the-PS3-“Amazing-Spiderman-1” game). and a virtual-desktop for House-chores & stuff (House-chores. Errands. Supermarket-shopping list. Etc). And I-discovered that, for the Virtual-Desktops that were grouped-together/similar–to-each-other, there was-no-way to group-them-together within “ONE virtual-desktop”. That is where “Activities” comes-in. Like the https://www.youtube.com/watch?v=qAI2NDJadDM and https://www.youtube.com/watch?v=fWKbZlPI12Y video explained, I could create 1 “Activity” for School-related stuff, and put-in ALL my School-related Virtual-Desktops in there. And make a DIFFERENT “Activity” for Work-related stuff, and put ALL my Work-related Virtual-Desktops in there. And make a different “Activity” for Home-related stuff, and put all my Home-related Virtual-Desktops in there. That is how-I-utilize-it currently; as a “Virtual-Desktop within a Virtual-Desktop” kind-of-thing.

    PLEASE don’t get rid of the AWESOME feature that is “Activities”. :””””””””””””””( .  Thankyou :”””””) .

    Like

Leave a comment