A replacement for XSMP for applications

Right now by default, when one starts up GNOME, one sees the background and files. There is infrastructure around explicitly saving sessions on logout, implemented with XSMP. However XSMP has many problems. The most prominent of these is that on a modern personal laptop, users don't log out; they either shut down or reboot. A secondary problem is that it is all or nothing - if you have a saved session, on login every single application tries to start simultaneously, which tends to cause disk seek storms.

A solution: Move to a model where the "session" is automatically saved periodically. On login, a process intelligently restores them in sequence. See below.

Saving Implementation

Every 1 minute, look at all open windows. For each window, map from the window to .desktop file using SessionWindowDesktopMappingProcess (not specified yet). If window is focused, increment focus count for that .desktop file. This data is saved in a SQLite database in ~/.gnome2/<machine GUID>/autosession.


On login, a window appears on the center of the desktop with an list of applications, ordered by frequency of use (based on the focus count). Each application may be double-clicked to launch it and remove it from the list. There is also a close button and a "Launch all" button. If left untouched, the dialog waits 15 seconds, and then launches the first application. It then turns into a notification area applet, and waits until the application has completed launching (by startup-notification), and then waits 5 seconds, and launches the second. This last loop is repeated until all applications are launched, or the user cancels.

Projects/SessionManagement/AutoSession (last edited 2013-11-22 17:55:54 by WilliamJonMcCann)