Wednesday, October 13, 2010

activities as homonyms

I've been reading around the blogosphere about activities in both KDE Plasma and the upcoming GNOME Shell. There's an unfortunate thing at play here: Plasma and GNOME Shell use the word differently. Yes, it's the same spelling and pronunciation and, worst of all, they are used to describe something in the same area of the interface (the desktop shell), but they aren't used to describe the same thing.

In GNOME Shell an "activity" is a virtual desktop, the same thing we've all come to know and love since X got support for them in 1989 based on work done earlier at Xerox PARC. Virtual desktops rock, and GNOME Shell has added an enforced overview (with +/- buttons to easily add and remove virtual desktops, something also in KWin these days) along with an integrated application and document launcher sidebar to the idea. They call this "activities" in an attempt to make the abstract and geekish "virtual desktops" more approachable to people. It is not, however, what most humans would call an activity in every day conversation. It's just a more recognizable name for an old concept that they gave some polish.

In KDE software, an "activity" is actually much closer to what we'd call an activity in the real world: it's a collection of tools with a task based theme. What the theme is remains up to the person using the computer; Plasma just provides an interface with which to create an activity and start defining what belongs to it.

The concept of activities in KDE software is not limited to Plasma, however, as activities are in GNOME Shell. KDE's activities are orchestrated behind the scenes, transparently to the user, by Nepomuk. Other applications can hook into this information and adjust their presentation accordingly. For instance, KWin recently gained support to not only hide and show windows associated with a given activity, but also to stop and start applications using session management. This means that when I switch to my "personal coding project" activity, I get a Kate window with the files loaded in it that I was last editing related to that activity.

Any application can talk to Nepomuk and get notified of activity changes or even create new activities. The idea is to create a task centric workflow allowing one person to use the same laptop or desktop system for multiple (potentially very different) tasks, keeping each one out of the way of the other.

Virtual desktops are really not particularly related to this concept at all, as should be fairly obvious. It's unfortunate that GNOME Shell developers decided to use the same word we are using for something so very different. Ah, well.

In Plasma Mobile and Netbook, we also have activities though they are slightly different beasts. Here they are sets of mini-tools and related applications. So using Plasma Mobile, there are different activities for different common tasks on such a device, such as communication (e.g. "making a phone call") and playing games. When switching between these activities, different sets of home screen applications and tools are presented and run (user customizable, of course).

Again, no relationship between virtual desktops and activities there, where activities map directly to "what I am doing with this device".

It is completely possible to use virtual desktops as a way to separate tasks into similar activity sets. However, it doesn't map very nicely to common use cases such as "I always have my email client (perhaps also always on desktop 4) regardless of what I'm working on". In such (rather common) cases, it becomes clear that virtual desktops and activities (as used in KDE software) are orthogonal, though they can be used as complimentary tools.

Using virtual desktops also doesn't give the applications any useful information as to what to do about the information inside of them. Being on virtual desktop 4 doesn't give KMail, for instance, any information as to what email accounts to start checking automatically. Knowing that the current activity is "Office" does, though.

One of the downsides of taking the approach we are in Plasma is that it is a new set of ideas. There is nothing pre-existing for infrastructure (e.g. we had to create all of the Nepomuk management and application notification from scratch) and we don't have the luxury of looking at other mature systems from which to copy when it comes to things like "what is the best way to switch between system-wide activities?" This means it is more work and a slower path to final results. We feel, however, that it is a slightly more interesting result, in terms of providing a new set of tools that address hard real world challenges in modern computer usage, than creating a full screen virtual desktop pager with integrated app launcher.

As activities take more and more defined shape and become more solid in KDE's Plasma workspaces, it will probably be wise for us to communicate clearly and simply what they really are and how to use them.

Otherwise people will confuse "activities" for "activities" and perhaps even miss out on this next generation of tools without ever understanding what they are missing.

18 comments:

ivgalvez said...

I have to admit that I haven't found any utility to Desktop Activities in Plasma, though I use them in Maemo 5 (N900) where I usually have two activities, one for normal use and another one for driving.

Dotan Cohen said...

I raised the issue on the Gnome bugtracker:
https://bugzilla.gnome.org/show_bug.cgi?id=632044

I suggest that all interested parties comment there.

megabigbug said...

Is it planned to provide default activities for plasma desktop in the next kde release ?
For example:
Develop, Read news, Watch videos, Office work, Play games

Each of these activities starts with default applications:
Develop:
Kdevelop, Konqueror displaying b.k.o, p.k.o etc websites.

Read news:
Akregator/RSS plasmoids Konqueror displaying www.kde.org etc

Watch videos:
Plasma-media-center or Dragon player, Dolphin displaying "My videos" folder

Office work:
KOffice, Kontact, Dolphin displaying a "My documents" folder.

Play games:
KPat, KMines

Without examples how the user will understand the "activity" concept and embrace it ?

gumb said...

"As activities take more and more defined shape and become more solid in KDE's Plasma workspaces, it will probably be wise for us to communicate clearly and simply what they really are and how to use them."

I think this is key. I just upgraded to SC4.5 and have started to look into using Activities, but am struggling to get my head around the concept and the distinction from Virtual Desktops. Are there any good screencasts you could recommend that demonstrate this? I've watched a few already but nothing that really shows a good example I can relate to.

Also, I believe I once read that you might have been personally responsible for assigning the Meta+Tab key combo to Switching Activities. All very well, except I've always used that for switching Virtual Desktops! And I can't find a GUI setting anywhere for changing this. If I try and set the Switch Desktops function to Meta+Tab, it informs me that it is already in use and would I like to reassign it? If I click Reassign, firstly there's no advice on what it is reassigned to, and secondly the result is that Meta+Tab now neither switches desktops nor activities. Probably a bug, but any advice? Perhaps a config file that can be changed?

bzhboy said...

I'm big fan of KDE, but I've never been very happy with Activities :
- the whole concept is not really clear (and changed over time : zoomable UI was drop, and it is good thing).
- the implementation have always been broken and complex to manipulate (in kde4.5 I'm unable to change the name of an activity & the deleted activities keep reappearing, making the whole thing unusable).
- although it may be nice for power user to have both virtual desktops and activities, for most users it is confusing and redundant : they are both means to group your application.

The Gnome solution is technically more limited but the usability is much more better and it is much more intuitive to use.

I wish you could make KDE activities as obvious and simple to use for the beginners as Gnome activities, while keeping the complex capabilities open for powerusers.

Patrick said...

I have to reiterate the feelings above. I'm a fan of KDE4 and the Plasma Desktop (and appreciative of all the work that's gone into it), but the shoehorning in of the activities has been very painful to watch. Features such as binding windows to activities only serve to further duplicate the functionality of VDs and increase the confusion between them. Two increasingly similar yet separate spatial paradigms in the same desktop environment makes things phenomenally confusing.

IMO, the very hard work that is going into activities should be put into making VDs more robust in a Plasma environment. For example, people can elect to use the same desktop on all VDs (standard) or use different desktops on each VD (already a feature). Once people decide to do the latter, all the cool nepomuk/context aware features can come alive, without having to reimplement so many VD features in Plasma and mire users in a very complex system.

Fri13 said...

I believe that both activity ideas are half-baked.

Let's check out what normal people do.

They have few apps running at same time. A web browser, a mediaplayer (not always), a email (if not using webmail as most) and filemanager.

Even the virtual desktops are not needed by normal people. They manage to keep all apps in one desktop. They can do multitasking just by switching the apps.

This is the problem now.
Instead switching apps, we should switch activities or instead switching apps, we switch virtual desktops.

Those users who has multiple tasks, they love virtual desktops because they can place different tasks tools to them. That is the GNOME idea and it works wonderfully.

In GNOME idea, you keep apps in one place for one tasks and for other task you place them to other virtual desktop. Easy to switch and notice what is happening and where, all the time.

The KDE's activities are technically very flexible but the usability seems to be very harsh.

You need to configure manually what window belongs to what activity and so on.

In the end, you need to manage activities AND virtual desktops.

All my friends have used virtual desktops for different activities. Messaging and connectivity at one virtual desktop, development tools at one virtual desktop and multimedia at third. And so on.

Okay, KDE*s designed activity solves that you can have multiple virtual desktops per activity. But who actually wants that?

KDE Plasma Desktop still lacks the needed feature to have different plasma panels per virtual desktop and per activity. Now users are still forced to have one and same desktop per virtual desktops and per activities. No change to have one V desktop with two panels, second with one panels and third without panels.

Iori said...

"Okay, KDE*s designed activity solves that you can have multiple virtual desktops per activity. But who actually wants that?"

I do. so , you mean that for each activity i have, i have to have all in one screen? my work activity ? you know , i actually do alot of work :)


last paragraph seems that you complain about the VD and Activity separation , but then argue about the lack of VD and activity separation of panels. i am very confused as to what you want.

to me is dead simple. Activities are what people have been using VD for. people have been using VD for activity meanings, and it works , but badly.

VD is just a screen organizer, in terms of space or screen size.

putting your mail window on another VD is not the way to go. it should go into the proper Activity. the VD it is , is just for screen room or placement.

kevin said...

Just as another perspective, I'm an Ion3 user. My primary means of task switching is to switch VDs, most of which have several windows presented in a tabbed layout, some of which have windows tiled next to each other, and some (just Firefox actually) are fullscreen.

If I were to use activities as presented in KDE, most likely what I would do would be to have a "communication" activity with email, chat, etc all visible in a single VD (tiled), a "research" activity with firefox and a bunch of pdfs open in seperate VDs, a "programming" activity with text editors and terminals open in many VDs, a "system" activity with lots and lots of terminals on VDs, and a "remote" activity with some mix of rdesktop, vnc, virtualbox, and ssh terminal sessions open.

Currently I handle this all with just VDs, the problem with which is that only "communication" and "Firefox" neatly fit in their own VD, everything else is scattered across multiple different VDs, and I just have a simple text pager at the bottom of the screen that tells me what the ordering and content of my VDs is (which goes in and out of sync with my actual usage on a regular basis, since updating the VD names is manual). Occasionally I do forget where I "left" a window and have to page through everything to find it, but the things I really use regularly are just a MOD-# away.

Crucial functionality:
1. Easily modifiable keyboard shortcuts to:
1a. jump to VD (whether in current activity or not)
1b. jump to activity
1c. iterate through activities
1d. iterate through VDs in an activity
1e. iterate through global list of VDs
2. Easily modifiable membership in activities/VDs (this is of course what the feature is all about, but I wanted to stress that other aspects of the interface are *at least* equally important)
3. Fast activity/VD switching

I'm currently extremely happy with my current setup, but if this really comes to fruition, it might finally provide something I like at least as much as my current lightweight-tabbed-and-tiled WM.

Notmart said...

@Fri13: "Now users are still forced to have one and same desktop per virtual desktops and per activities."

no, every activity ha a different desktop (background, set of widgets, whatever)
about different panels: technically it would be feasible for sure..
now, i'm not sure it's the way to go, i feel that something that stays fixed when everything else changes as a "control point"
it's not excluded for the future, however

Hans said...
This comment has been removed by the author.
Hans said...
This comment has been removed by the author.
Hans said...

I had some trouble posting this; sorry for the triple post.

-

@gumb:

Not a screencast, but you can read how others are using activities in this forum topic.

In response to this I wrote a blog post describing how I use activities, which some seem to have found useful.
Note that this was written when activities basically were groups of widgets - I didn't use any of the new features Aaron wrote about in this post.

If I remember correctly Chani has made some screencasts with activities, you can find her blog here.

Regarding your question about shortcuts, when you reassign a key the old shortcut is set to "None". I don't know why the second one doesn't work, however. Maybe you can try and ask at the forums, where we can ask you for more details.

-

I was surprised by how much reaction my blog post got, since I didn't do anything fancy with activities. Yes many have a hard time to grasp the concept of activities, and I second megabigbug's request to add a couple of activities by default. It would also be nice with a "professional" screencast (I think of Apple when I say this, but there are probably other good examples as well) showing how it works with the default activities.

For me, one difference between activities and virtual desktops (in terms of usage) is that I don't switch between the former that much. If I switch to my Study activity, it's time for studying, e.g. writing a lab report, and I'll keep doing it for some time. However, I might have my web browser on one virtual desktop and writing-related stuff (vim + okular) on another. If I need to look something up I switch virtual desktop to my web browser and then back. But I'm still in my Study activity.

One activity I would like to see in the future is a Presentation activity. It would show a plasmoid with my presentation slides (probably Folder View for now, but I've been thinking about how to make a better one), switch to the Presentation energy profile in Power Devil and disable notifications and screensaver. I think this is a good example of how I would like to use activities that virtual desktops can't do.

uC said...

Which all brings us back around to KDE 4.5.(X) needs a good explanation. I would read it. Perhaps even the devs don't really know. I didn't see the KDE Guiding philosophy for Dummies or get the memo.

KDE 3.5 was sublimely obvious. Obvious at the top level and getting pretty neat as one drilled down.

Gnome in it's current form is easy and Windows 7 is all about IE.

Petri Järvenpää said...

Here is a blog posts that gives you great ideas how to use your activities:

http://hanschen.org/2009/11/17/how-do-you-use-activities/

benjaminq said...

I would LOVE to see some "preconfigured" activities in the next KDE release. Just for giving the users a first impression and possibly a template to modify. These activities may be called Internet, Office, Photoediting; Music or whatsoever and do not need to be perfect, just about a reasonable match of the term. This would encourage more users to explore this concept. At the moment it is just giving somebody an empty peice of paper (and that somebody does not know whether he is supposed to use a pencil, a typewriter, a spray, whether he should fold it to origami ... ???)

gumb said...

@Hans - Thanks for the article. It's starting to make a bit more sense now.

My first adventures in Activityland were being marred by a problem with the auto-respawning of invalid and deleted activities on each login, which I seem to have somehow stopped happening now, and by the afore-mentioned issue with the keyboard shortcut conflict, for which I've submitted a bug report. There is in fact a GUI setting for the Switching Activities key combo but it's hidden away in the Global Shortcuts -> Plasma Workspace drop-down menu. It also took a while to find a convenient, workable and visually unobtrusive way to easily switch activities because Meta+Q sometimes makes my Plasma crash and I tend to have maximized apps covering the cashew, so I've decided on putting the Activity Switcher plasmoid on a second panel with Auto-Hide; an idea I got from one of Chani's screencasts.

kzimm said...

Probably the best practical example of activity use I have seen is the PCLinuxOS remaster known as the "Full Monty" edition. (http://www.pclinuxos.com/forum/index.php/topic,73118.0.html)