← Back to team overview

unity-design team mailing list archive

Re: Are Workspaces the right model?

 

Another place to perhaps search for ideas for implementation would be the Compiz "Group and Tab Windows" plugin available from the "compiz-fusion-plugins-extra" package*****
*
On 01/11/11 12:53, Evan Huus wrote:
On Tue, Nov 1, 2011 at 5:56 AM, Thorsten Wilms<t_w_@xxxxxxxxxx>  wrote:
Hi!

Workspaces
----------

The purpose of workspaces is having a means of organizing windows in sets
and making it simple and fast to switch between them. Making one set visible
means hiding all others (except when going into an overview).

Each workspace holds a set of windows in a specific layout.

If you want to have a specific window on all workspaces, you either need an
"on all workspaces" or an "always on current workspace" feature. You are out
of luck, if you want one window on some workspaces.

Conceptually, having a single desktop background, including icons, requires
a background layer below the workspace layer.


Just Sets
---------

An alternative to the workspace metaphor is dealing with sets of windows
directly. No switching between semi-physical workspaces, just showing and
hiding of sets of windows.

While it's likely preferable that selecting one set hides the others,
selecting several sets to have all their windows shown can be allowed
without stretching the metaphor.

The equivalent of "on all workspaces" or "always on current workspace" could
be having one always present set, which could also hold the background and
panel.

Set membership could/should be non-exclusive. So instead of an always
present set (aside of background and panel), there could be a "include in
all sets" feature.

In addition to sets, there could be layouts. Each set would default to a
manual layout, but allow switching to automatic tiling layouts. Currently,
getting to screen filling side-by-side layout is bearable thanks to the
snapping feature, but a top/bottom split is *work*. Either could be had
without any dragging, by having a single command to cycle through layouts
(or several commands for switching to specific layouts).


Stacking
--------

Currently, z-order and minimization are separate affairs, the desktop is
very special and show-desktop is a special command.

What if the desktop would be treated more like a regular window, with a
place in the z-order that is not fixed to always-bottom?

Minimization could be replaced with falling to below the desktop.
Show-desktop would be just raising the desktop to top. Restoring windows
would be just letting it drop to bottom again. You would probably want a
special rule to *not* automatically raise the desktop when it receives
focus, though.

Hiding a set would be dropping the collective z-order to below the desktop.
The z-stack would contain a little bit of history of set-selection, then.
That selecting a set would lead to dropping the previous top set to the
bottom and making sure the desktop is right below the selected set is
admittedly a little complex of a story :)
Very interesting idea! Sets as you describe them are certainly more
powerful and more flexible than workspaces in their current form.

The only advantage the current implementation has in my opinion is
simplicity of representation - while I'm quite impressed by sets, I
have no clear idea how the user-interface for them would work. They
expose so many different states and actions that adding items to the
launcher (where the Workspace switcher currently is) would quickly
overload it.

On a slightly tangential note, this sounds vaguely similar to
Firefox's "Tab Groups" functionality (Ctrl-Shift-E to activate it in
Firefox 4+). It may be worth looking at what design choices and
trade-offs the Mozilla folks made in designing that.

I'm very much looking forward to further discussion on this - it has a
lot of potential.

Cheers,
Evan

_______________________________________________
Mailing list: https://launchpad.net/~ayatana
Post to     : ayatana@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~ayatana
More help   : https://help.launchpad.net/ListHelp



References