Computers are very versatile tools, used in a variety of situations, to work, listen music, write documents, but it is very difficult to create a comfortable user environment for each task. When working to an important document, mail notifications are very annoying, but turning off completely notifications is not the ideal solution, mails related to the activity are welcomed. What is missing is the possibility that the computer adapts his environment to different activities.
Virtual desktops are the more advanced solution to implement activities today, but this is only a start.
There is a difference between a virtual desktop and an activity: virtual desktop is a collection of resources (windows mainly), an activity is a collection of related resources. You can work for a project, read documents, contact people, receive mails and so on and all these items can stay associated to the activity you are currently operating.
We can roughly consider an activity on top of a collections of virtual desktops.
A ‘recent document’ menu can contain a lot of unrelated documents, a personal letter written in a pause together with work documents and worst, it has a finite length, so new documents of unrelated activities are pushing into oblivion very important bookmarks.
Activities are useful to categorize and filter environment items, but it is not practical to manually label each resource that can reside in an activity, so the workspace should automatically collect informations, like the mylyn plugin in Eclipse world
When in an activity you can associate not only documents related to that activity, but also contacts, sites, and so on.
We work on different projects and we use the computer for personal activity each day. Computers are universal devices and can be used for different purposes.
As a further example, it is an annoyance to receive mail notifications from people not related to projects ( with obvious exception for emergencies ) in working hours. An activity can filter what that can distract, without hiding information, but focusing out of view not relevant factors.
It is important to have a simple ‘relations’ manager to handle what resources are related to an activity and move or copy them from a workspace to another (maybe using the KDE plasmoid zoom interface).
It is important to have multiple activity configurations, you can use same laptop at work and at home, even applications menu can change in different situations.
Activities attributes and resources should be shared between teams.
There are two types of applications: specialized ones (video, audio, graphics editor for instance ) and generics ones ( word processors, time tracker, etc) that should have different behavior. How horizontal applications like file browsers should behave? Why not filter activity related directories in ‘Open File’ dialogs? Currently this dialog supports only a simple filter that maps to file type (a word processor filter documents, a spreadsheet csv and so on)
How to save data in application specific format and not using specialized Desktop Environment routines? How to integrate, for example, Open Office? We should use the metadata we are using for browsers: the tags, but there is the problem to maintain metadata in sync with data when moving files, doing backups and so on. All the files that user opens or write should be logged, but the metainformations should be stored in the document or in the filesystem?
Even phones have different modes: mute, normal, meeting etc.
Tags and activities are separate concepts, tags are traversal and additive, activities are thematic.
Desktop Environment should leads the user how to enter and how to exit from an activity. We should decrease normal desktops visual clutter that confuses the user about his state.
Another problem is how to include external resources if the filter are restrictives, maybe by adding a button in each “Open File” dialog that let us choose to stay in the current activity environment or see all the resources.
Other open problems are how to integrate in this vision externals resources like network infrastructure, network, printers, etc.
Talking about concrete cases, like the recent documents menu, why not make it central for a desktop or expand it to order it for ( I often need this ) creation date, write date, access timestamp or access frequency, category?
Why not display this menu in a cloud representation? More, the vertical list used is a very short and useless representation. A timeline can be more useful.
Different activities can be created for different purposes even using same programs.
In a desktop system I can save programs state on disk passing from an activity to another one, but not on phone system for device limits.
Anyway each journey begins with a single step, and Plasma is a good one.