[haiku-development] Re: session manager

  • From: Stephan Aßmus <superstippi@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 27 Jun 2011 12:27:18 +0200

On 27.06.2011 11:53, François Revol wrote:
Le lundi 27 juin 2011 à 00:39 -0700, pete.goodeve@xxxxxxxxxxxx a écrit :
If you mean that a profile would control *all* Tracker windows, this
would conflict badly with my habitual use of Workspaces.  I typically
devote one workspace to each project I'm working on (or intend to, soon...)
and leave all the relevant folders open, sometimes for weeks.

Having a profile for each project, though, and being able to have several
profiles active at once, would be really nice.

+1

I could imagine that this may make things more complicated for the user, since you have to think in multiple dimensions. A session "profile" doesn't at all have to be limited to one conceptual "project". I would find it clean if a session profile refers to any and all open windows, whichever apps they may belong to, and when you activate a session profile, all workspaces are brought into exactly the state that they were in at the time of creating the profile. That would be a straight action.

However, this outlines an incompatibility between the understanding that Ingo introduced (even Undo state is restored), and the understanding that Alex and Pete seem to have. In the sense of session "profiles" (Alex) versus a single "state" (Ingo), you would want to allow the profile to evolve. Obviously when I work on some project, and restore the profile to open all windows related to the project, I do not want to restore the project into the state that it was in when I created the profile (i.e. reverting any changes done in the meantime). What Ingo is talking about is really about restoring the computer into the exact state it was in when you last used it. This has its own benefits (and some drawbacks) and is notably how other platforms work in day to day use (when you use suspend to RAM on your Mac, or unlock the screen of your smart phone).

Workspaces can be used in different ways. For example you can use them to separate apps, or you can use them to separate projects, or even a mix. When used to separate projects anyway, I wonder how useful it is to store session state and associate it with all open projects. Seems like a duplication and overlap in functionality to me. The workspaces to separate apps usage pattern, at least to me, seems to be most common for separating concurrent tasks. For example, I might always have Vision open on workspace 3, regardless of what project(s) I am working on. In this sense, it seems the session as "state" approach would accomodate it well.

To sum up:
 * The session as "deep state" of the system is incompatible with profiles.
* Session profiles (to me) don't seem to add much over using workspaces to separate projects. * Allowing multiple profiles to be active at once is complicated to grasp and may be pretty hard to implement to feel exactly right and always do the "expected" thing, especially in conflict situations.

I would favor the very straight forward (and optional) feature to store a deep state of the system as "session", and use that to bring the computer back into exactly the state that it was in before. Let the already existing features like workspaces be used to separate projects.

Best regards,
-Stephan

Other related posts: