Custom Categories and Named Workspaces
The new workspaces are smart in that they know when they are needed; but they don’t take into account how some activities (where an activity involves the user doing something with a file / note / contact / webpage...) are related to others, and how those relations should reflect in they way they’re distributed across the existing workspaces.
A user may use his computer for work or leisure activities; it makes sense that he should keep his worktime activities separate on their own workspace. But he shouldn’t have to separate them manually every time he starts them.
User Cases
- Tom uses his computer for work, but he likes listening to music while he works and has a habit of checking Facebook a bit too often. He doesn’t want to have Rhythmbox and his Facebook tab together with his work-related windows, and wishes he didn’t have to sort them manually every time.
- Peter shuts his computer down very often, so he’s contemplated having it save the session at shutdown in order to start working quickly when he boots up again. He’s decided against it, though, because he also uses it for pleasure and doesn’t want all his work-related windows to come up if he only wants to watch a movie.
- Jane only uses her computer for work, but she’d like to keep a sharp line between her customer-oriented interactions and her supplier-oriented interactions. That’s why she likes to keep chat windows involving customers (which are a lot) on one workspace, but those involving suppliers (along with related websites) on a different one. She thinks it’s a pain to have to drag the same windows from one workspace to the other once and again, day after day.
- Daniel likes to start his communication apps (Empathy, Gwibber, Evolution) at bootup in order to get notifications of incoming messages, but he hates getting the windows in front of him because he isn't in a worry to send any messages himself; he wishes there were a way to start all these apps automatically and silently e.g. in a different workspace.
Workspaces can be smarter about this if we use custom categories. We can let the user add an app, file or activity to a custom category that makes sense for him (e.g. Work, Media Edit, Projects) and apps, files or activities* from the same category would start on a common, named workspace. These workspaces disappear when their last window is closed, just like normal workspaces, but there are two differences:
- The user has the option to remember their state (as opposed to either remembering or forgetting the whole session); that way the user can shut down his computer and keep his ongoing projects handy on boot, but still have a clean desktop if he wants to do an unrelated task instead (e.g. watch a movie). Instead of booting up to an empty workspace, the user will boot up to any named workspaces that were active at shutdown, AND an empty workspace, focused by default.
- The user has the option to assign a specific key combo used to reach them quickly, regardless of where they’re positioned on the workspace picker.
The user can right-click an application, file or activity in order to add it to an existing or new category. When an item belongs to a category, he can right-click again to remove it. Each item can only be added to one category, because it can only be sent to one named workspace.
An activity can be anything that Zeitgeist can keep track of. They don’t refer to items (such as apps or files) but to how the user interacted with those items: using a specific app to open a file, using a specific method to talk to a contact, editing a specific Tomboy note... that way the user could choose to trigger a named workspace when editing a video with Openshot but not when playing it with Totem, or open certain Tomboy notes / contact chats on a named workspace, but not the rest of the notes / contacts.
The user can check and browse existing categories through the extra entries in the Overview’s right pane, or through the search (i.e. if he searches “media edit”, all items belonging to that category would show up). Categories, just like workspaces, are created when they’re assigned to their first item, and deleted when they’re removed from their last one.
When an item belonging to a category is opened it goes to the empty workspace, which turns into a named workspace, and a new normal, empty workspace appears.
When the last item of a named workspace is closed, the workspace itself closes too.
If the user logs out while one or several named workspace exist, their contents are saved and then retrieved at login so that he can easily resume his work; however the focus goes to the empty workspace, so that he can immediately start an unrelated activity if that’s what he wants.
Discussion
Implementation
See Also
Original bug report https://bugzilla.gnome.org/show_bug.cgi?id=648855
Mailing list discussion http://mail.gnome.org/archives/gnome-shell-list/2011-April/msg00415.html
Zeitgeist integration http://seilo.geekyogre.com/2011/01/first-public-gnome-shell-zeitgeist-efforts/