Session Management Proposal

Ray Strode halfline at
Sun Dec 28 15:49:48 EET 2003


I'm currently working on improving the session management situation in
GNOME.[1] I've adopted Havoc's msm module from GNOME CVS and am working
on making it a viable replacement for the current gnome session manager.

The XSMP spec is lacking some features that would be useful for desktop
session managers.

    1) Session managers have no way of knowing localized names for
       their clients.  This means that there is currently no nice way
       for session managers to present clients to the user (in error
       messages, splash screens etc).  Current session managers work
       around this by employing internal SmProgram mapping hacks, but
       that is clearly suboptimal.

    2) It would also be nice if each client told the session manager a
       preferred icon name (again for splash screens, etc).

    3) Some desktop environments have certain programs which provide
       integral functionality for the environment's proper operation.
       These programs need to be treated specially.  For instance, for
       most desktop environments the window manager should probably be
       the first program started on login.  Also, other fundamental
       programs like panels, desktop icons, etc., should probably be
       loaded before normal applications.  Furthermore, if for some
       reason a restored session is lacking one or more of these
       fundamental programs then it would be a good thing if the
       session manager could optionally start them up.

       The easiest way to solve these problems is to have each client
       tell the session manager, e.g. "I'm a window manager" or "I'm
       just a normal application" (or whatever).

    4) Also, users may want to control what order certain programs in
       their desktop are loaded on login.  Some session managers
       implement a Priority property where programs of lower priority
       get loaded first, which seems like a reasonable solution.

Furthermore, in the past it was agreed that parts of the XSMP should be
simplified/reinterpreted.[2]  I think there is enough to be done that
this stuff should be formally standardized.  Attached is an initial
draft.  I've also posted it online at
If everyone agree that this document is useful, I would like to get it on

Open Questions:
    * The document uses a _NET_ namespace for the properties.  Is that
      okay, or should something else be used?
    * Are there enough role types?  Are there too many?  If it seems
      like more will be needed, then the property may have to change to
      ARRAY8 instead of CARD8.
    * The proposal currently says that the discard command should be
      run on /all/ clients following a SaveYourself message with Global
      save type.  Would it be better to only run the discard command of
      non-spec-compliant clients?  This would mean adding some property
      to the documents for clients to set that says,  "I'm dsme
    * The proposal currently says that users should get involved
      whenever there is a SaveYourself message with Global save type
      (e.g. "Do you want to save ''?").  Would it be better to
      skip those messages if fast is set?  I'm thinking of the case
      mentioned in the XSMP where the power is about to go out and the
      UPS is trying to shutdown quickly before the power gets cut.  I'm
      not sure if automatically saving all open documents without
      asking the user is less evil than not shutting down at all
      because the shutdown is waiting on a confirmation dialog to
      close, but if it's decided that automatically saving all
      documents is the desirable thing to do, then we should add
      something to the spec about it.  Note there is some potential for
      abuse because a broken/malicious program could have every open
      document on the desktop saved right under the user's nose whether
      the user wants all the documents saved or not.

Comments, suggestions, and additions appreciated.  

--Ray Strode

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dsme-spec-0.5.xml
Type: text/xml
Size: 17939 bytes
Desc: not available
Url : 

More information about the xdg mailing list