http://jesseross.com/clients/etoile/ui/project_based/01/
Neat.
Thanks! :)
One detail I especially like is the automatic coloring of different
workspaces. I'm not sure we should force the project-based workflow,
though. If you think of it, all files and other items in a project
eventually have a window associated with them (at the least, the
containing folder window in GWorkspace). So, just doing this as a
workspace manager that manages windows should suffice.
In some ways though that's just tacking a new method of interaction
onto an old paradigm. I guess if you view it in terms of the system we
already have, you get:
Folder => Project (with customized icon representing the spatial layout
of contents and annotations, and when activated consumes the entire
screen)
Window => Document (in this system you don't "Open" a document --
they're always open, you just zoom in on them)
Icon => Miniaturized (zoomed out) view of document
File Names => Not necessary to define, unless you want that as an
additional piece of metadata
Aliases => Shared Documents (perhaps with lines drawn between originals
and aliases -- this functionality should be toggle-able or viewable on
a per-document basis)
Two additional points to remember:
- We don't want to have too many methods of interacting with the
system just to appease the widest audience. That kind of situation,
while it may make the most people happy, can make the system seem
overly complex and not very unified.
- We already have desktop environments that handle files like we're
used to (with windows, and icons, and folders that all look the same,
and files names, etc) -- why reinvent the wheel?
You could set up shortcuts for some of your workspaces, and there'd be
one "shared" workspace which shows up no matter what regular workspace
is frontmost (for things like the desktop, taskbar, and any other
things you want).
This could work, but I don't know if we should make it be an actual
workspace. Can you imagine the newbie user who has to understand that
they're looking at two different workspaces/projects at the same
time... the mental leaps they'd have to do remind me of trying to teach
the concept of layers in Photoshop to people for the first time.
An Exposé-like feature would also make sense here, on a per-workspace
basis, along with a simple "Window list"-style window that contains
both open and closed windows associated with this workspace, allows to
manage them and maybe even is extensible (so Project Center could just
use a workspace to manage its files).
Assuming we never close a document -- that it always exists in the
place where you first created it -- then a Window List for managing
your files within a project is overkill. That makes users learn two
methods of managing their files, and makes them have to make a mental
leap to understand that the item in the list is a proxy for the item on
their screen. For those of us used to desktops, it's not a huge leap
because we use proxies (in the form of icons, which are really just
stand-ins for our documents) and indirect manipulation all the time.
For people afraid of computers, the fewer new concepts they have to
understand the better.
Basically I'm just pushing direct manipulation wherever possible.
Every workspace is effectively a file somewhere. Users could
duplicate workspaces (which will automatically duplicate all documents
open in that workspace) to send them to other people, make aliases of
them etc. It'd also be handy to have a document be a member of several
workspaces, with different open windows, window positions and scrolls,
etc.
Agreed. If you're moving a project to a foreign system (one not using
Etoile), then it makes sense to treat it like a folder hierarchy. I
would even say that annotations should get saved as individual files
within the main project folder.
Note that utility applications (like a CD player that simply plays
the CD currently in the drive and allows you to pause and skip) would
be treated just like another document. So, you could have your
TV-Tuner app set to CNN on the "Work" workspace and to "Fox Kids" on
the locked workspace where your daughter can play Solitaire, Myst and
write her homework in TextEdit... or whatever.
Great idea.
One problem would be to find a good name. Since the file manager is
already called GWorkspace, we might just want to find another name.
"Project" is also used by a similar-but-different concept in IDEs. So
either we'd get ProjectCenter changed so it uses our Project metaphor,
or we pick another name. "ProjectCenter" would definitely be a
misleading name.
I know what can happen with naming discussions (I've been a trigger in
far too many :) -- let's see if we can get a working model of this idea
going then decide on the actual terminology. For now let's just stick
with calling it a Project-based Desktop or something similar... we'll
all know what we're referring to.
J.