Re: To quickly cut through the fog: workspaces vs. viewports



Michael Toomim <toomim cs berkeley edu> writes: 
> Would somebody be able to quickly summarize (or point to a summary of)
> the reason for choosing workspaces over viewports in gnome2?

Well, I don't think anyone wants to do this, but I'll do it anyway...
again. :-/

We did not need to choose, because there is no interesting difference
between them.  Saying that we chose workspaces or viewports is like
saying that we chose to write in C++ vs. C; the user should not notice
the decision. (In saying "no difference" the claim is not that there
is no difference in Sawfish or other current window managers, but
rather that there is no reason there is any difference. That is, you
can have one concept of workspaces with all features of both
traditional concepts, and you can implement that one concept in
various ways.)

Given that, there is no reason to care about workspaces vs. viewports.
However you might argue that having two concepts is a good idea. For
reasons it might not be, see
http://mail.gnome.org/archives/desktop-devel-list/2002-April/msg00618.html

Note that if you think two concepts is good, there isn't actually any
reason the two concepts have to have the feature clusters they
traditionally have. For example, you could have two kinds of "space,"
and both could allow windows to overlap two spaces as in traditional
viewports, if you wanted. Or you could have two concepts, and neither
one would allow edge flipping. Or whatever.

You could in principle have the following UI:

 Name your new custom kind of space: ___________

  [ ] has edge flipping
  [ ] has arrow-key shortcuts
  [ ] windows overlap between instances of this kind of space
  [ ] whatever else

  This space occurs inside what other kind of space [Foo]

  You have [5] spaces of this type nested inside Foo

And you could make up Workspaces, Viewports, Workspaces', Viewports', 
MyOwnWackyKindOfSpace, MyPersonalKindOfPort, blah blah blah. Then nest
them all inside each other!

Anyway, the GNOME 2 decision was to have the configurable kind of
space, but not to allow more than one kind, and you have to name it
"Workspace." Whether to make each feature (edge-flipping or whatever)
available as an option for this single kind of space is an orthogonal
question to how many kinds of space you can have at once.

Thus, if you like (non)overlapping windows between spaces, arrow-key
shortcuts, edge flipping, or whatever you like, those likes/dislikes
have nothing at all to do with the question of whether to use
workspaces or viewports. Zero.

The only issue here is whether you want to be able to have two (or N)
kinds of space at the same time, nested inside each other. Tossing out
that ability is the decision that was made for GNOME 2.

So, there we have one conscious feature jettison: you can't have two
kinds of space at once. 

We also have a few accidental feature jettisons, because we used the
code for the traditional "workspaces" concept. This means that 
for example arrow-key space-switching has to be reimplemented, and no
one has done that yet. So this is one reason people are bitching, but
it has nothing to do with workspaces vs. viewports, and nothing to do 
with the conscious feature jettison, it is simply a "no one
implemented it yet." So we're taking patches.

There may be some features that we don't _want_ patches for, for
example to me edge flipping (when not dragging a window) is in this
category. But each of those features can be separately discussed and
no such discussion has yet occurred.

 - Workspaces vs. Viewports = Implementation Detail You Don't Care About

 - Specific Features = Thing To Be Discussed On Individual Merits Of Each Feature

 - Number of Simultaneous Kinds Of Space = Example of a Specific Feature

>  Was it something decided on the mailing list a long time ago?

Yes, it was discusssed quite a while back, but I couldn't find it in
the archives when I looked the other day.

Havoc



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