[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ayatana] Are Workspaces the right model?





On Tue, Nov 1, 2011 at 6:23 PM, Evan Huus <eapache@xxxxxxxxx> 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

1)The interface could remain the same as the current interface for dealing with windows and workspaces in the Gnome Shell overview (Please look at it if you haven't). Except that (for eg.):
a)Shift(?) dragging a window into another set/workspace adds it to the set.
b)Holding down Shift(?) and clicking allows selecting multiple sets to be displayed at once.

2)The idea of the desktop being a special window is really cool.
It will maybe allow different desktops to be displayed for different sets. this would fit well with the concepts of static workspaces presented here ( in idea 2): https://wiki.ubuntu.com/Ayatana/Workspaces/Concepts

3)Technical issues:
a)how to deal with Z stacking across multiple sets.
b)how to deal with different positions for the same window across sets.