The usual way to organise a Linux desktop for such work is to allocate one or two workspaces per task. We can see this as a geographical separation of all the applications of each task. This was not good enough for me as, after one month without working on a task, I forgot where it was. There is no clear separation between all tasks been given that some tasks extend to two or more workspaces. Moreover it is not easy to add a new workspace to an existing task. Last but not least, when I'm interrupted in a task to do something else quickly, I often forget or sometimes find it annoying to try to find a free workspace for this new task, so that many tasks are mixed on the same workspace. After two monthes of work, I have a dozen tasks ongoing, scores of occupied workspaces, hundreds of opened xterms, 30% of which are not used anymore. Needless to say I'm totally lost.
This extension tries to change the way tasks are managed. Sawfish works as usual. But we now can create tasks. A task has a name, which will be asked to you when you create it. All applications can either behave normally or belong to a task. If there is an active task, all new windows will belong to this task. If there is no active task, new windows will not belong to any task. There is at most one current task, but you can display as many tasks as you want at a given time. You can add and remove windows from the current task. You can cycle between all tasks. You have a popup menu to activate a new task and another one to toggle a new task.
Well, that's pretty much it.