Between Linux and Anime

Kind of like Schrodinger's Cat

The Rise of Plasma Activities and What it can do for You

So having been kept away from KDE-land for some while, I innocently but excitedly pushed the upgrade button when I saw that 4.6 was out, and ran immediately smack into the huge forward leap that plasma activities has made this release. I have always been a big fan of activities and this is really exciting stuff for me, so I made a quick visit down to Chani’s blog for a quick-tour of what’s new and what’s good, but while I personally found her screencasts illuminating, a quick skim through the blog comments quickly revealed that many people remain more perplexed about activities than ever.

I’m gonna spend some hours on the keyboard here and see if I can fix some of that :)

Firstly, the usual disclaimer: I’m neither developer nor designer of the activity mechanism, just someone who has been regularly using activities – and liking them immensely – since the 4.1 days. The overview I’m gonna give below is based on my own understanding and experience using activities, so I won’t guarantee they’re all correct. Chani or the other Plasma devs are naturally welcome to come correct me if I make any mistakes.

What are Plasma Activities

I think we’ve all heard what plasma activities “are”, in some way or another before, but for completeness let me do a round of that here. Here’s the background: we all use our computers for different kinds of things, and you’d rarely find a person that only ever does one ‘activity’ on the computer. Let’s call these things we do on computers “computing activities”. Examples of common computing activities include social networking, researching for and writing a report, compiling statistics, drafting a school project essay, developing a program, and editting photos. Commonly, we get on the computer intending to perform a few of these computing activities, and what happens is that there is an inevitably necessary “context-switch” that we need to effect in some way or another in order to move from one activity to the other – since the tools, files and windows involved in the different activities are almost guaranteed to vary.

On a high-level perspective, plasma activities are meant to be associated with these computing activities, with one computing activity being associated to one or more plasma activities. So you’d want to have one plasma activity for writing a program, and another for preparing your data report, and another for enjoying multimedia. Fundamentally, a plasma activity is meant to be a contextual encapsulation that tries to maintain as much contextual information about a computing activity as possible, while at the same time exposing as many relevant tools and functionalities as possible and keeping the irrelevant ones out of sight.

So the way it should go is this: when you are researching for a report you would be on one plasma activity, and it should contain as much of the stuff you’d need when doing that as possible while hiding away games and video players and such, and then when you get bored and decide to download and sort/edit through the photos from your camera, you would also correspondingly switch to the appropriate plasma activity, which should throw out all your spreadsheets and references and bring out the likes of digiKam.

The Current State of Plasma Activities

Traditionally (ie pre-4.6), plasma has done this by, effectively, providing customizable sets of desktop widgets that can be swapped in and out. So that a statistics-compilation activity will simply be a collection of plasma applets that help you with that task, consisting of say quick-access widgets to your data and perhaps a calculator applet of sorts. Likewise a software development activity may contain folderviews to your source code folders and quick-links to online api docs. You effectively get customized desktops (desktop as in the stuff behind all your windows) for each activity you want to perform. Some real examples of such plasma activities, complete with screenshots, can be found here, here, and here.

My newly set-up coding activity, with api reference links and kate applet

With 4.6, plasma takes activities one step further by allowing windows to be associated with activities. Windows associated with a particular activity are only visible when you switch to that activity. So now what should become possible is this: switching from a schoolwork activity to a blogging activity does not only throw out all the schoolwork related applets and bring out the blogging related ones, it also hides away all your schoolwork word processor windows and brings out your blogging client or web browser. Instant, near-complete context switching.

The Use Case

A key question I keep hearing over and over again regarding plasma activities is – what’s it for, how does it make my life more convenient? Many people appear to think that activities are somewhat neat but too complicated and don’t actually address a real need. Along those lines, though I should already have hinted heavily at most of these before, let me spend a couple of paragraphs detailing use case and see if that might make things any clearer.

Imagine again that typical scenario – you are writing, say, a science paper, and after awhile your head starts spinning and you decide you can’t do this anymore, and decide to take a break on a more leisurely activity – sorting through the tonne of photos from your latest vacation, filtering, organising and editing them. A context switch becomes necessary – you don’t want all your paper writing stuff on the screen anymore and you want your photos and image software up. How do people traditionally perform this context switch? From my observation people usually go about this in one of two ways:

The minimizing spree. Some people simply start minimizing everything – the word processor with the half-finished paper, the web browsers with related material, the pdf readers with the related works – all goes down to the taskbar, and then they open their photos folder, open their favourite photo management tool, and get to work. When they decide they want to watch some videos or listen to some music next, they repeat – all the photo stuff goes to the taskbar, and out comes the music players. The advantage of this is that all your windows remain open, and you can resume a previous task by simply picking out all the windows from your taskbar. The disadvantage is that your taskbar becomes a monster very quickly, and window management within each individual task eventually becomes an irritating nightmare. Notably, the taskbar redesign in Windows 7 appears to be tailored to better support this mode of operation.

The clean slate. Some people (or their computers) simply cannot take that kind of massive clutter, so they actually kill everything related to the previous activity to get back to a clean desktop before setting out on the next task. So context switching involves save-kill-save-kill-save-kill-start-start-start. This way you always have relatively small numbers of windows and a relatively clean taskbar, but context-switching becomes time consuming because you always need to restart all your programs, reopen all your files, and re-point your file managers to the correct directories.

Here’s where plasma activities come to the rescue. Configured right, you should simply need to switch from your “write report” activity to your “manage photos” activity, and all the context switching should be dealt with automatically. All your word processors and browsers should be gone – from both your workspace and your taskbar – and all your photo equipment should appear, instantly. And if you want to stop and listen to music, change activities again, and all your photo stuff disappears and you get a clean workspace with only media stuff. What’s more, when you switch back to your photo activity everything reappears as it was and you can continue precisely where you left of. In effect, you get the best of both worlds with plasma activities. Computer growing slow from having too many hidden windows? The stop button on the activity panel let’s you “stop” the activities you’re not working on, which kills all its associated windows. You can later resume the activity, and all the killed windows will be restarted with their original files/urls/locations. Pretty magical stuff really!

In the end plasma activities are all about context switching. As long as you work on very different things on your computer, and each thing is complicated enough to require a critical number of windows open, there’ll always be room where plasma activities can help you when you need to switch between them.

What about Virtual Desktops?

I deliberately left out virtual desktops above because I think it deserves a section on it’s own. The other set of questions you always hear being asked about plasma activities is “can’t you do the same with virtual desktops?” or “Can’t you just fix/improve virtual desktops to do all that instead of introducing this new thing and creating conceptual clutter?”. I think a core reason why such questions arise is because many people have traditionally been using virtual desktops as context switchers. It is not uncommon for people to name their virtual desktops with such names as “work”, “leisure” or “web” – precisely the sort of names activity users would use to name their activities. So it does make an interesting question: why not just refit and refurnish virtual desktops, that everyone is already used to, and make them more “activity enabled”? Why have virtual desktops and activities?

There are two important reasons I think. The first is technical, as Chani noted in some of her comment responses. As I understand it, virtual desktops are an old, estabilished and time-honored idea, and they’ve been around so long that applications have been written that assume the standard behavior for virtual desktops, for example, that a window can only be on one desktop or on all of them. Since we don’t control these applications and don’t even know all of them, making changes to the way virtual desktops work without causing breakage to any of these existing applications becomes a sticky engineering problem. It’s probably not an unsolvable problem, but I think there is another, more intuitive reason why virtual desktops and activities should not be combined.

To understand this, we need to make a distinction between “spatial” and “contextual”. Virtual desktops are spatial – they give you more space to put your windows. Adding a new virtual desktop is not unlike plugging in a new monitor or adding a desk to your office workspace – you can have more stuff out at the same time and be less cluttered because there is more space to contain those stuff. Virtual desktops aren’t necessarily contextual – I can have a bunch of windows all related to the same computing activity strewn across various virtual desktops, just like I can have documents about a single task strewn across all my desks. This is a perfectly valid way to use virtual desktops, and it is non-contextual – it doesn’t help me divide between activities nor make context switching any easier. Of course, I can if I want exercise some discipline and confine all the windows of one particular task to one particular desktop, so each desktop represents a different task. But then I’d be harnessing the spatial enhancements that virtual desktops provide to create some semblance of contextual grouping.

Having a single concept – virtual desktops – balance both space and context may be a little awkward. Obviously it can work – we never had a choice anyway before plasma activities came along, but now that they have we can begin clearly separating the spatial from the contextual, and thus work towards a more optimized treatment of both. Under the new paradigm virtual desktops should deal solely with the spatial and activities should take over dealing with the contextual. After all, between the associating of custom widget sets to each activity, the ability to stop and resume activities, and the ability to associate windows with as many (or as few) activities as one wants, the plasma devs are working hard to make activities better at contextual management than virtual desktops ever were. So here’s the idea: if you have always only needed one desktop for each of your tasks and have been habitually using virtual desktops to divide your activities, under the plasma way you should really be having only one virtual desktop with multiple activities. If you only ever do one complex thing on your computer, then you should have one activity and many virtual desktops (which simply reduces to the old pre-activity days). And finally, if you are like me and have many different things to do, and would like a lot of space to do each of them, then you can have multiple activities and multiple virtual desktops, with the activities doing the contextual dividing and the virtual desktops simply providing extra space – for each.

My windows arranged across virtual-desktops when creating some blog banners – ie performing a single activity

The Catch

I should carefully note that I’m in part talking vision here. Most of the new plasma activity features are quite rough around the edges as of 4.6, and using them fully as I have described may take some effort and patience. There are a number of issues I have discovered from my experimenting. Most notably, non-kde apps don’t fit too well into the picture – they often don’t manage to open with the correct item loaded when coming alive with a resuming activity, and don’t actually get closed when stopping the activity they belong to. Also, window-activity association support is pretty skeletal at the moment, severely lacking in stuff like keyboard shortcuts and easy ways of throwing windows to other activities. You can’t even set window rules related to activity association from systemsettings. It is a new feature after all, and most of these will doubtlessly be eventually dealt with.

Remember that it is compulsory neither to use activities nor virtual desktops. You are welcome to use whichever one helps you, and leave any or both alone if they don’t. I think it’s cool either way that free software isn’t simply seeking to emulate the well accepted paradigms of desktop usage, but are pursuing new ideas and pushing into new grounds. Evolution and progress could hardly happen without taking some risks and taking steps out of the comfort zone. Personally, I’m excited about where we’ll end up next.

1009
Rate this post
Thanks!
An error occurred!


  • Facebook
  • Twitter
  • Identi.ca
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • RSS
  • Reddit

Previous

Fixing Funny Image Colors in Firefox on OpenSUSE 11.3

Next

Connecting to Hidden Wireless Networks using KDE’s Networkmanager

38 Comments

  1. I’m the author of the “How do you use activities?” blog post (link in your first example link) and I was very surprised at how popular it became. After all I didn’t do anything special with activities. As you noted many are still confused about the activity concept, and I think your article does a good job explaining it.

    It’s funny to read this since I was planning to write a very similar article myself, now that activities have evolved past “groups of widgets” (which my initial post described). I still think I’ll write it, but maybe I should focus a bit more on examples – you’ve already put most of my thoughts into text.

  2. Jacob

    Sounds neat, but what about when I want for instance Kontact open on both the Work and Private activities, is that possible?

  3. Jackie McGhee

    Thanks for this post. I’m a very new KDE user who made the switch from Gnome for 4.5 and I’m loving 4.6.

    The problem as I see it (and I’m no hacker) is that there is no real definition or user documentation and up until now it has been described in terms that could best be said to be wooly.

    As an example: I’m trying to create a Home activity which I want to have the Newspaper layout with a clock, calendar, RSS feed etc. and I know that the Newspaper layout is supposed to let you arrange things in columns, but whenever I grab a widget, I just end up scrolling the single column that I have. If I expand the widgets to move them around, it doesn’t split into columns. And what does ‘Expand Widgets’ mean here? When I click it, none of the widgets change shape.

    Don’t get me wrong, I really am enjoying using KDE 4.6 but so much of the user documentation for new features seems to be locked in the developers’ heads where it is of limited use.

  4. @Jacob: Right click on the window titlebar -> Activities -> check the activities you want (or “All Activities”).

    @Jackie McGhee: I think most people agree with you regarding documentation, the problem is that we don’t have enough contributors. If you want to help with documentation (e.g. by adding content to UserBase, the KDE user wiki) please contact me (mail) if you need help to get started. It doesn’t require too much time or extensive knowledge about KDE.

  5. kriko

    Where did you get this nice fruity wallpaper in first screenshot?

  6. Robbx

    This is really the best post explaining how to use activities I read up to now. I adopted the activity concept since 4.6RC and I am quite happy with that. I use my notebook for many different tasks at work and for private issues. Activities help a lot separating work from private stuff.
    For sure, there are still rough edges (as you mentioned), but I am quite sure they will disappear more and more over the next releases as chani announced in her(?) blog.

    PS: I marked your post as browser-fav to pass it to interested friends.

  7. Robbx

    @Jacob: Yes, thats possible, you can assign windows to multiple activities.

  8. moltonel

    Note that associating a window with a specific activity worked in SC4.5 already. In fact I haven’t upgraded to 4.6 yet but I have been using this feature for a while.

  9. Um, I neither minimise nor go on app closing sprees. I have an autohide taskbar and use pretty much all my apps full screen. When I want to change to something else, I just click on that app in the taskbar.

    This workflow seems to cover coding, artwork, social networking and document writing more simply, easily and cleanly than any workflow I can see with activities. Everything I’m not using is invisible. Anything I need is available with one click. There’s no time spent classifying windows and widgets and desktop images into categories and then managing those categories and switching between them.

    Like I’ve said elsewhere, I want to love activities, and would happily integrate anything that makes my life easier. All the management of activities just seems to vastly outweigh pretty negligible benefits to my workflow, as far as I can see. Damn, I hate to be down on something that so many people I admire (Asiego, Chani et al) seem to feel is so important. I’m just still not seeing any increase in convenience. Maybe I just need to have a real power user of activities show me some tricks that would directly relate to my usage and then I’ll “get it”. Still, as long as it’s helping some users, even if they’re not me, that’s got to be a good thing.

  10. Fri13

    I have currently four tasks on going.

    1. Checking blogs, website updates, news and web videos and writing to them

    2. Managing photos

    3. A VoIP with a friend to other side of the world.

    4. Writing documentary

    I have multiple windows open and I need multiple files as well. I need to switch tasks to progress in other or I need to use same task on all the tasks what I do (VoIP).

    Now the activities should come and rescue me by somehow hiding all complexity and so on making my life easier. Right?

    Where do I need activities, when I have virtual desktops? Virtual desktops were originally developed to solve exactly all the problems what did you just write about.

    The idea with virtual desktop were that you could have a totally own desktop for every task what you made and they would hide unrelated things as well.

    I have four tasks and by default, I have four virtual desktops. When I want to switch actual task, I just hit shortcut and I am on other tasks.

    If I want to move window to other task, I can now do it very easily with a presentation and desktop grid effects. Much easier than original idea of right clicking window or using a shortcut.

    And all the times, with presentation and desktop grid effects I can very fast check what is status on every different tasks.

    And what is the big difference between activities and virtual desktops? Virtual desktops are not on your way. You can easily do quick other tasks in other virtual desktop without need to “tie” the task to new activity before starting it or you do not need to switch activity and then application to get things done.

    What virtual desktops still needs, is the possibility to have totally own panel setups. The panel should not be forced to be same on all virtual desktops. There should be possibility to have custom panel setups (amount and widgets on panels) on every virtual desktops, without anykind activities. As we need to have different wallpapers on virtual desktops or different widgets on different virtual desktops, we really need a different panel setups on every virtual desktops.

    And I think that KDE main developers does not want to implent that feature because it would show for most users that they do not need activities at all.

    Why anyone would need activity to have different widgets on desktop?

    The KDE’s talking activities are almost identical to functions of virtual desktops. It is designed for Windows users who does not use more than one desktop and has never ever heard about virtual desktops. Or advanced KDE SC users who keep their default tasktray configs where every task on every virtual desktops shown all the time so they feel it is so terrible to not be possible focus to one task at the time.

    Virtual desktops work as well as location awarnes function between school, home and work. Just make a own virtual desktop to those places and you get just fine done everything. And here GNOME is really doing something amazing simple and intuitive. If you have multiple projects (tasks aka activities) like in schools you have, where you have 4-5 different categories work in a day. You can simply start a new activity (aka virtual desktop) for every task and switch between them in different classes. Everything is in direct control and as easy as switching virtual desktops or adding a new one from desktop grid.

    Even starting a new activity in GNOME 3.0 is simply as instead clickin application from menu, you drag it to new activity and it is there. Easy way to get new apps or windows to tied to same or different activities.

    Dont get me wrong. I am hardcore KDE supporter and fan. I really love KDE SC more than GNOME. But so far no one, No one has not could tell why Activities are better than virtual desktops or how they would resolve problems easier and better way than what virtual desktops could ever do.

    For what your category I would fall when I have multiple tasks (aka activities) where I have multiple window (from one app or from multiple app) open but in multiple virtual desktops where I tie every task to one virtual desktop so I can focus just for one task at a time and actually see all that task windows open at once, without seeing any other tasks (virtual desktops) or vice versa? If I have now 13 windows open, four virtual desktops and one task what is going all of them (VoIP), is that something what “Activities” should allow me to do?

    Why user should first play with activities and then play virtual desktops? If user has two activities and default 4 virtual desktops just for two activities, then user has totally 8 virtual desktops and most of them are just for nothing.

  11. I’ll have to look more into this. I think Activities are easily summed up as, “Like Virtul Desktops, except that when you’re not using one of the Activities, everything disappears”. That’s how I see it still but I’ve not really spent time with it; I’ve never seen a need.

    Part of the thing holding me back is that the set-up alone sounds time intensive: “Amarok, oh that goes… into this Activity I suppose. Lemme check out that picture, oh wait I need to switch Activities first. Oh I should write a quick note… what, why does Kate always make my Amarok disappear??” I get the concept I think, I’m just not sold on the need. The ‘Minimize Spree’ takes about 5 seconds. Setting up activities seems much more intense, and remembering which Activity has that specific KNotes entry may well be impossible…

    Again, I’ve not really tried these Activities, it just *sounds* intense. Especially with a 15+ paragraph article needed to clarify them and their use cases.

    It is great the FLOSS is pushing the boundaries of computing, regardless of if I use this or not. Well done KDE, always impressive.

  12. I actually just have meta+d bound to Kwin->Show desktop. The nice thing about that is that in one keyboard shortcut all my windows are instantly minimised, and then if I want them all back again exactly as they were I just do it again. I know I could use Ctrl+f12 however the two keys are further apart, some of my keyboards don’t have f keys by default (without turning on function lock every time) and unlike ctrl+f12 the desktop is more permanent – that is ctrl+f12 seems geared for you to do one action and then disappear. Many things like bringing up a window make it go away. With show desktop I can do whatever I want and then restore only when I want to.

  13. titi

    >From my observation people usually go about this in one of two >ways:

    Funny, most people I know use the virtual desktops.

    People above do a great job explaining it.

  14. Jason "moofang"

    @Jackie McGhee: Sadly, I’m not too familiar with the newspaper layout. I find that the usual desktop one works fine and intuitively though. You might find better help by getting on #kde on irc freenode.

    @kriko: Off of deviantart :) There are a pretty wide selection of similar, very nice wallpapers by the same author here.

    @Bugsbane: Hmm, I personally would not be able to live with that because my taskbar would soon get hopelessly cluttered, and since most of my work requires rapid and frequent switching between related windows, I would then spend a steadily accumulating amount of frustrated time trying to find the right window on the taskbar each time, since the taskbar doesn’t quite categorise the stuff in it, and each taskbar entry soon shrinks to something quite unreadable when the number of windows gets large. This used to be precisely what happened to me back when I used Windows, and whenever the taskbar gets crowded I’ll tend to start misclicking taskbar entries and get frustrated when the wrong window pops up. And the more difficult my current task, the more windows there are, and the more I misclicked. It was quite a nightmare for me. So, for people like me, I only want the windows related to my current task down there, so I don’t have to squint and look for them when switching. If you don’t have such a problem though, then perhaps you are right to stick where you are and forget about activities :)

  15. Jason "moofang"

    @Fri13: @titi:

    Where do I need activities, when I have virtual desktops? Virtual desktops were originally developed to solve exactly all the problems what did you just write about.

    The idea with virtual desktop were that you could have a totally own desktop for every task what you made and they would hide unrelated things as well.

    I would like to contend this claim. As I’ve said in the article, using virtual desktops as a task divider in the way you described is one way we have come to use virtual desktops, it isn’t the only one. There are folks like me who use all their virtual desktops while working on a single task, because we simply like the extra spatial freedom that virtual desktops provide. So virtual desktops have actually been serving two, quite different purposes. I suspect that this difference in usage is one of the main reasons some people instantly “get” activities while some others don’t. Folks like me that have been using virtual desktops to have more space for the same task instantly see activities as something we can use to divide between tasks, while people who have been using virtual desktops to divide their tasks have effectively been using virtual desktops as activities, so when plasma introduces activities, they ask “What’s the difference?”.

    So, reiterating, there are two needs here that are of interest, and they are quite distinct – the need for more space, and the need to divide between contexts. From your description, you have primarily been using virtual desktops for the latter, which is fine, but there are people like me who want multiple desktops for each task. Trying to serve both spatial and contextual needs with just virtual desktops isn’t really nice, so ideally, there should be a feature to deal with each of them. The idea then is for virtual desktops to stop being used to divide tasks – that’s activities’ job now. Virtual desktops should now simply be used to provide more screen space. If you only need one desktop’s space per task, then what you really don’t need is virtual desktops, not activities.

    You would of course be quite right to say that activities are not all that great at what it’s supposed to do now, and you could even say that, for many people, virtual desktops still do the job much better. That would be perfectly fair. But that doesn’t make activities pointless – just underdeveloped. The vision is for there to be a feature that deals entirely with providing extra space, and another feature that focuses entirely on context management. Activities are that second feature. It may not be there yet, but that’s why the plasma devs are putting so much work and attention into it :)

  16. Jason "moofang"

    @lefty.crupps:

    Part of the thing holding me back is that the set-up alone sounds time intensive: “Amarok, oh that goes… into this Activity I suppose. Lemme check out that picture, oh wait I need to switch Activities first. Oh I should write a quick note… what, why does Kate always make my Amarok disappear??”

    You’re right. The window-association in particular isn’t close to being a mature feature yet, and it’s a little painful to use at its current state. I think it’s perfectly intelligent to decide that it’s too rough and raw to use now and leave it alone, I’m just trying to argue that there is an underlying point behind the way things are developing along, and that that point is a pretty valid one.

    I get the concept I think, I’m just not sold on the need. The ‘Minimize Spree’ takes about 5 seconds. Setting up activities seems much more intense, and remembering which Activity has that specific KNotes entry may well be impossible…

    It is, but activities are meant to be a set-up once, benefit forever kind of thing. Ideally we should spend some extra time setting up a new activity when we have something new to do, and then eventually compensate for that extra time spent in time-savings as we progress along the task.

    Again, I’ve not really tried these Activities, it just *sounds* intense. Especially with a 15+ paragraph article needed to clarify them and their use cases.

    Well, there have been people who have “gotten” activities very easily. As I said in the above comment, I suspect it has to do with how we’re previously used to using the computer. The 15 paragraph may also be because I’m not good enough to describe it in less xP

  17. Sven

    So activities are really meant to persist across sessions, i.e. if I suspend my “essay”-activity log out and back in I can resume it some days later?

  18. Jason "moofang"

    @Sven: Meant – yes. It actually works now already, if you stick to kde apps. You don’t actually have to suspend the activity if you don’t want to either – kde has long been able to save all your windows during logoff and put them back during login anyway, now it simply puts them back with their activity associations intact. And yes, if you suspend an activity, and resume it some days later, all your windows will be remembered and reopened.

    The catch at the moment is this feature is rather hit and miss where non-kde apps are involved. For example, kde remembers and reopens firefox, but it doesn’t restore all your tabs/open urls. The funny side-effect is I’m actually using konqueror for some of my web browsing now – just to be able to take more advantage of activities :P

  19. mark

    Nice article!

    In “the past” i saw activities as just virtual desktops but with another name. The way you described it does make the whole activities idea a lot more interesting then virtual desktops even though you can actually do the exact same thing in virtual desktops (with some pain :p).. it’s just that the idea behind the 2 concepts is completely different.

    At this moment i’ve only used activities once in kde 4.3 or something and was welcomed by a crash :) so i didn’t attempt to use it anymore after that. I think activities can become very useful for people that have a multi monitor setup so that you have Activity X on monitor X and Activity Y on monitor Y… other then that i really just gotta give activities another try to see if they work for me now :)

  20. Fri13

    I just made update to KDE SC 4.6 on netbook and I noticed there is a quest to push Activities for new users. As every virtual desktops now share the same widgets by default and only way to get own widget setups to virtual desktops is to use activities.

    That made me upset as pushing own fantasy technology for normal people as default setup is totally wrong.

    The only reason why I find activities someway important, is not about activities, but about nepomuk. That nepomuk could itself know what file belongs to what task.

    Still the idea “one app/window per virtual desktop” is not wise at all. Best functional with virtual desktops are totally that if you edit blog graphics, you place all the apps/windows to same virtual desktops where you can manage the single task easily. Then other tasks, like document writing with office application or music management + filemanagers is placed to other virtual desktops.

    Everything what is linked to one task, should be available and viewable at once. Not that you need to switch virtual desktop to get some other things done in one task. The presentation effect for single virtual desktop, a task panel “show only current virtual desktop” or Alt+Tab is there for a reason what makes managing a single task so powerfull what activities can not.

    And for normal users the virtual desktops idea is much easier as they can see all their virtual desktops and their tasks at once. While in activities, it is hidden and everything comes complex and technical stuff where user needs to remember what is actually happening.

    The Activities Zoom UI was much better by idea and in usability way than what the current list is. It just should be as easy and fluid to use as it is to summon a KWin effect called Desktop Grid + present windows. Just swing mouse to screen corner and you see everything, all tasks what you have going. Just swing mouse to other corner and you get present window effect what shows all windows from current task (same virtual desktop).

    When you start a new own task, you just swing mouse to corner, press a + sign and you have new area. What is the great functionality in GNOME 3.0. Easy and intuitive. No extra setups.

    And most important, if you need to do a quick things, like check webmail while editing photos, you actually could just do it by opening a browser (or new tab if you have browser already open) and checking webmail. No need to start a new activity or sudden activity switching just to do something very quickly.

    People does multitasking, even that they can not do anything at once. But neither can computers do. Human is like single CPU where you need to switch process fast enough if wanted to do something “same time”. Two core CPU’s are same thing as two people doing same work but different parts of it.

    Now in activities since KDE SC 4.6 the default thing is if user wants own widgets to desktop, user needs different activities. By default one activity has 4 virtual desktops. So two activities brings 8 virtual desktops. 3 activities gives 12 virtual desktops and 4 activities a 16 virtual desktops! That is just so big amount of virtual desktops to manage that it is not usable at all! It takes time and lots of learning from user work itself just to play around activities.

    Thats why as well GNOME went to their current design of their activities, what is easier and more intuitive and logical.

    I have many ideas what I need to input to kde forums brainstorm forums about activities. But the current and the future how it is presented, is not so wise by my opinion.
    Think about how your mothers and faters (or grandmothers/grandfathers) would feel about the activities vs virtual desktops. Which one they would find more easier to manage 2-3 different tasks (every task has multiple window).

  21. vespas

    how about being able to suspend (instead of entirely stop) activities? If I press stop everything is killed (and I have to decide whether to save any open documents, it’s something I commonly don’t want to do when I want to switch to another context). Would it be possible to “freeze” the programs in their current state and unload them from memory to free up resources? Something like a partial suspend to disk. Or am I dreaming? :)

  22. Jason "moofang"

    @Fri13:

    I just made update to KDE SC 4.6 on netbook and I noticed there is a quest to push Activities for new users. As every virtual desktops now share the same widgets by default and only way to get own widget setups to virtual desktops is to use activities.

    Actually, this has been the default behavior since 4.1 (maybe before) – all virtual desktops have always shared the same widget set, and people who don’t want that have always needed to use the 1 activity per desktop feature (which is still there, named “different widgets per desktop” in systemsettings). So to be fair there’s really no forcing-down-throat going on there :)

    Still the idea “one app/window per virtual desktop” is not wise at all.

    I don’t put one app/window per virtual desktop actually. It’s nothing quite so organized :) Let me describe a use case. Let’s say I’m writing a technical research paper. How I would typically arrange my windows is this: Kile and Okular with related work on one desktop, Web browser on another desktop, and my research software + Kate with source code on yet another (and possibly IM/IRC on the last). This allows me another dimension of micromanagement – need to look something up online? Go to desktop on left. Need my related works? It’s under my Kile window. Need to fiddle with my software? Go to desktop below. For me this is much more efficient than having to pick out the correct window from the taskbar, or even from the present windows effect. I don’t need to look away from the center of the screen, I don’t quite even need to think after awhile, I can get to most of my windows in 2 or less hot-key presses. That may sound like more trouble than one-click, but it’s really look and click versus just hit the hotkeys, and for folks like me hotkeys are almost always better than clicks because I work with both my hands constantly on the keyboard, so having to reach for the mouse to get to another window then go back into typing position is actually a small but real pain. I’m not making this up, this is how I use my virtual desktops, and I usually have enough windows for a single task to populate at least 3 of my 4 desktops.

    Of course, I’m not saying your way of doing things is inferior to mine. The point is that there are folks like me who need virtual desktops for non-contextual things, so creating a new feature to handle context does in fact make our lives nicer. In the end, a feature like activities really increases the number of choices we have, not vice versa.

    And for normal users the virtual desktops idea is much easier as they can see all their virtual desktops and their tasks at once. While in activities, it is hidden and everything comes complex and technical stuff where user needs to remember what is actually happening.

    Agreed. The point I’m trying to make however, is that activity is an immature feature that still needs work. Not a waste of time that should be thrown out the door. It’s an important difference :)

    Also, on a semi-related note, my experience with new Linux users is that they also have difficulty with virtual desktops, with many deciding to just use one desktop because they’re so used to that. New usage paradigms always take some initiative and getting used to I think.

    The Activities Zoom UI was much better by idea and in usability way than what the current list is.

    Yes it is. The ZUI was not scrapped because people decided it was a bad idea, it was scrapped because the underlying Qt mechanisms weren’t performant enough (you should remember that the ZUI lagged badly), and didn’t look like it was going to become performant enough in the near future, so they had no choice but to scrap it.

    No need to start a new activity or sudden activity switching just to do something very quickly.

    Well, I don’t. I only start activities if I think I’m going to be working on it for some time, or if I think I’m going to do it over and over again. Otherwise it doesn’t make sense to go to all that trouble for something that would be done in 5 minutes :) Or you could just do like Chani and have a “misc” activity where all these little things that don’t belong elsewhere goes.

    3 activities gives 12 virtual desktops and 4 activities a 16 virtual desktops! That is just so big amount of virtual desktops to manage that it is not usable at all!

    That’s not quite true. The whole point of activities is to block out everything except the current task at hand, so I’ll not be managing any of the other activities at all. So if I have 4 virtual desktops then I’ll always only manage 4 desktops regardless of how many activities I have – you’re not supposed to be caring about the stuff in the other activities until you switch to them.

    I think it all boils down to this: Activities have usability issues. However, if and when it becomes as easy to use as virtual desktops, then it would make more sense to use activities for contextual management than virtual desktops. We are working towards that day.

  23. Jason "moofang"

    @vespas: Well, I know it can’t be done now, whether it’s a feasible thing for a future feature, I don’t know :P Well, if you don’t have memory contraints, you could simply not stop the activity and leave it running.

  24. parnote

    I hate how KDE 4 SC uses “activities.” In a Microsoft fashion, it tries to force all users into using this feature the same way. As it exists now, you cannot have a different wallpaper on each of your virtual desktops, unless you define a different activity on each of those virtual desktops. If you have a core set of plasma widgets that you like to use, you cannot have access to them unless you run a copy of that particular widget within EACH of the plasma activities, which is an approach that does not make for the wisest use of memory on a system.

    Under KDE 3.5.x, it was possible to have a different wallpaper on each virtual desktop. Certainly, this was before “activities” came along, but it still should be a fairly easy task to separate wallpaper from the plasma activities … something we still don’t have, even with 4.6.0 coming out. Users should at least be given a choice whether to include either the wallpaper in the activities, or the a core set of plasma widgets in all activities. Instead, the KDE 4 SC developers want to put everyone into a box that dictates how these activities are to be used, since users aren’t given a choice of WHAT to include in plasma activities. I find this attitude bordering on arrogance.

  25. GREG BATMARX

    I agree that activities are the most awesome thing that happened in KDE and in Linux and I also agree that virtual desktops(workspaces) have to remain as such, each with the unique ability to have its own set of wallpapers, globes, slideshows, widgets etc.
    This combination is so rich and meaningful that only unimaginable persons wish for the abolition of virtual desktops in favor of activities.

    I have demonstrated the Linux KDE in a lot of windows users and feel awe for what they saw.
    Many of them switched to Linux and KDE after this.

    Now my suggestion for activities and for better cooperation between them and between activities and virtual desktops:

    1)A screen edge for activities that will show the all as a grid.

    2)A new effect activity cube.

    3)A hypercube that will show at the same time activities+virtual desktop +a multi-grid that does the same.

    4)New activities: a)writing b)searching c)programming d)watching

    5)Activity panel default on the main panel using icons

    6)New options and features like a)record activity b)save activity c)sending (!) activity d)merge(!!) activity

    I self study QT and Python so I hope i can help in some of these
    Greetings!

  26. Alan

    I so want to like Activities and find them useful, but so far it’s a no-go. The jury is still out for me on Activities in 4.6, but so far they don’t do enough for me to find them useful.

    Part of the problem is that I don’t use a lot of plasmoids on the desktop, but I DO use them in panels — but panels can’t be different between activities! Agh!

    The possibility of having applications launch in different activities is intriguing, but it sounds like it might not be ready for prime-time. Especially with non-KDE apps, which is more than half the apps I use. I will have to try it and see.

    What would make activities useful to me is:

    – Different panels for each activity
    – Different colors & icons for activities (sounds petty, I guess, but imagine having a conservative-yet-attractive theme for work presentations, minimal dark theme for coding, and fun bright theme for everthing else)
    – Different Window management for activities (I’d like tiling when I code, but not for “normal” activities)
    – Startup scripts for activities?

    I guess this is a fast road to feature overkill, but if you really want to give me a “switch gears” utility, these are the kinds of things that would make it worthwhile.

  27. Jason "moofang"

    @parnote:

    I hate how KDE 4 SC uses “activities.” In a Microsoft fashion, it tries to force all users into using this feature the same way.

    I can sort of understand where such accusations are coming from, however I think an honest effort is being made not to force activities on people who don’t want it. You can absolutely use KDE without even knowing what activities are, and that alone I think is sufficient evidence for that.

    As it exists now, you cannot have a different wallpaper on each of your virtual desktops, unless you define a different activity on each of those virtual desktops. If you have a core set of plasma widgets that you like to use, you cannot have access to them unless you run a copy of that particular widget within EACH of the plasma activities, which is an approach that does not make for the wisest use of memory on a system.

    So your real complaint is that activities are essentially keeping out a feature you want – to have different wallpapers per virtual desktop without having a different widget set. I think this is a fair complaint on its own, however, just as there are people like you who prefer things the way you described, so there are people like me who want things to move in the direction of activities. Sometimes, you can’t please everyone, and a choice needs to be made. Feature requests getting turned down is an occurence that is by no means limited to KDE – it happens everywhere, and is inevitable.

    Instead, the KDE 4 SC developers want to put everyone into a box that dictates how these activities are to be used, since users aren’t given a choice of WHAT to include in plasma activities. I find this attitude bordering on arrogance.

    I think this is unfair. From what I see, the developers only turn down user opinion/feature requests for two reasons: either there isn’t enough hands to do it, or doing it would result in consequences that the developers consider harmful. Naturally, people don’t always agree on the “harmful” part, but the developers do – necessarily – know more about what they are doing than the users do. Using and supporting a piece of software, I think, should involve trusting the software developers to consider the totality of things, including the things users desire as well as things going on under the hood, and make the best informed decisions on our behalf.

    I should also note that there are plenty of users who agree with the developers and want things to proceed in the direction they presently are. So this isn’t even a “developers vs users” thing.

  28. Jason "moofang"

    @GREG BATMARX: It’s now possible to define activity “templates” using Javascript and share/download them using GHNS :)

  29. Thanks for the detailed blog. I especially appreciate you explaining the the concepts and practical applications. I’ve been hoping for something like this for quite some time.

  30. Jason "moofang"

    Glad you found it useful :)

  31. Hey. I actually wished to leave a quick observation and also inform you understand that I’ve been pursuing your particular blogging site for quite some time. Keep up the very superb task and I will be looking again once again relatively soon.

  32. Kristian Z

    I like the idea in theory, but I think they still need to work on making the activities concept more easy to use in practice. I tried fooling around with it. I now have four activities called “New activity”, but can’t tell which is which or how to edit them or use them for the intended effect. I think I’ll stick with using virtual desktops for contextual switching, for the time being.

    • Jason "moofang"

      Hello, it is true that activities in Plasma Desktop isn’t as intuitive as it can be at the moment (it’s a little better in Plasma Active atm), but if and when you’d like to give it another chance, you can do most of what you need to using the activities panel, which you can access via right click on desktop > activities, or click cashew > activities, or a keyboard shortcut of your choosing, or by clicking the activities plasmoid if you have it on your panel. You should be able to create activities with a button click or two from here, and as you have seen, newly created activites are all called “New activity”. You can change the name and icon of the activities by hitting the spanner icon on the bottom right of each activity icon, and switch between them by simply clicking the icons. This is what my activities panel looks like at the moment:

      Note that some activity changes requires plasma to be unlocked, and probably nepomuk to be enabled. You can also suspend and resume activities by hitting the “stop” and “play” button at the top right of each icon. That covers all the basics. Windows you open while at a particular activity will stay in that activity the way they’d stay in a virtual desktop, and plasmoids/widgets you add to the desktop and the wallpapers you set while in a particular activity will stick to that activity as well. So when properly set up, switching to a particular activity should make all windows you previously opened in that activity appear, and the entire desktop layout + widgets that you previously added in that activity to also appear. At the moment, desktop panels are invariant across activities, but just about everything else will be associated with the activity you are in and remembered. It is possible to change the activity association of a window on-the-fly by right clicking the title-bar and selecting Activities.

      Hans also wrote an article showing 7 different ways to switch activities here, so that could be something you can read and experiment with as well.

      Edit: There’s also a nice little writeup on basic activity usage at the Chakra wiki here.

  33. Prateek

    I use KDE and I usually have lots of things running at the same time. Nearly all windows are full-screen (I wish Pidgin would show its buddy list and chats in a single window so that I could full-screen that too). I don’t have any taskbar or any other list of windows in any panel. When I want to switch windows, I move my mouse to the top-left corner to activate Present Windows, and I type the first few letters of the window I want to switch too. Or I sometimes use Alt+Tab to switch between two windows back and forth. I never look at my “desktop” or use widgets on it, the concept of a desktop need not even exist as far as I’m concerned.

    So these “activities” seem cool and I would like to use them – but context-switching is already very quick and convenient with Present Windows. Acitivities would be more of a load and an additional thing to manage.

    Besides, the semantics of the whole thing are rather unclear:

    1. There is always a current virtual desktop, and N-1 other non-current ones, and they all the non-current ones have the same status. Is there always a current activity? Can one be in more than one activity at a time? Is the status of all the non-current activities the same?

    2. What’s the deal with the whole stopping and pausing? How does that work? Is it the same as manually closing and restarting applications? Can one switch to a stopped/paused activity without restarting all the applications associated with it?

    3. What is the precise relation between windows and activities? Does each window belong to a particular activity? If so, when a new window (of an existing or newly launched application) is spawned, to which activity does it go? Can a window belong to an arbitrary (nonempty) subset of activities? Can it belong to a stopped activity? Can one decouple windows and activities entirely? Does this make sense? If so (given that I don’t use desktop widgets), what effect will switching from one activitiy to another have?

    4. What is the precise relation between activities and virtual desktops?

    Unfortunately it seems hard to find a thorough description of the behaviour of windows, virtual desktops, and activities which answers all these in full generality.

    • Jason "moofang"

      Is there always a current activity? Can one be in more than one activity at a time? Is the status of all the non-current activities the same?

      As of right now, you are always in exactly one activity. The other activities are either ‘stopped’ or not stopped. You cannot be in a stopped activity.

      What’s the deal with the whole stopping and pausing? How does that work? Is it the same as manually closing and restarting applications? Can one switch to a stopped/paused activity without restarting all the applications associated with it?

      As of right now it works the same way as KDE session save and restore (as during shutdown and boot). Effectively what happens is all KDE applications only associated with the activity being stopped will close themselves (applications associated with multiple activities won’t if the other activities are still active). When the session is resumed, these apps will restart and try to restore the previous state – eg konqueror will reload its web pages and kate will open the files that were open when you closed that activity. Non-kde apps tend not to do this though, at the moment. Once you activate an activity all the apps come right back up – the whole idea is to put everything right where they were when you last left.

      3. What is the precise relation between windows and activities?
      4. What is the precise relation between activities and virtual desktops?

      Think of it thus: at the highest abstraction there are activities. In each activity you have virtual desktops, and in each virtual desktop you have windows. Each activity “owns” its virtual desktops and the windows in them, so every window belongs to at least one activity. However you can couple a window with more than one activity (yes, an arbitrary subset of activities), much like you did with virtual desktops – semantically it just means that that particular window is relevant to more than one tasks I’m performing. A window can belong to a stopped activity – stopping an activity doesn’t dissociate its windows. Semantically think of stopping an activity as telling the computer “okay, I won’t be doing this activity for awhile, so free up whatever resources you can, but don’t forget what the activity is about” – it doesn’t change the activity and all its associated stuff, it just closes what it can while keeping enough information to reopen them in future.

      Currently if you’re in activity A and you open a window the window simply associates by default to A, the rationale being that if you open a window while doing a certain activity that window must be relevant to that activity.

      Addressing you current present-window based workflow, I used to do something very similar and I think it’s a good enough workflow (certainly better than the windows taskbar-based one), and if you never get to too many windows it might make sense to just use that and don’t think about activities. Activities are basically one more layer of organisation for those who need it.

      An example when activities would be a useful addition to the present windows workflow would be, let’s say I’m working on a website – that’s maybe 4-5 windows of editors and image makers and reference material. Say then my mother comes along and asks me to help her with a document, or I get bored and want to switch to writing a blog before finishing the task at hand. You’ll basically be forced to add windows to the mix that are not relevant to the original task of making a website, and when you hit present windows on that you’ll get a random arrangement of windows since the present window effect doesn’t know that the windows are for different tasks. The more separate tasks you try to do non-sequentially, the more jumbled things get if you lump all the windows into one giant present windows. Some people are okay with this, others would like to organize it so that when I’m doing website and hit present windows I only get website windows, and when I’m blogging I only get blogging related windows. For the latter type activities are the answer.

  34. Prateek

    Thanks for the detailed answer!

  35. Hi! Would you mind if I share your blog with my facebook group?

    There’s a lot of folks that I think would really appreciate your content.

    Please let me know. Cheers

  36. Thanks for sharing, this is a fantastic blog post. Really looking forward to read more. Will read on…

Leave a Reply

Powered by WordPress & Theme by Anders Norén