Session management in Oneiric

Registered by Didier Roche on 2011-04-27

This blueprint is about session management in Oneiric. Integration from LightDM, removal of session saving, adapting with the new oneiric GNOME stack.

Blueprint information

Status:
Not started
Approver:
Sebastien Bacher
Priority:
Medium
Drafter:
Didier Roche
Direction:
Needs approval
Assignee:
Didier Roche
Definition:
Approved
Series goal:
Accepted for oneiric
Implementation:
Unknown
Milestone target:
milestone icon oneiric-alpha-2

Related branches

Sprints

Whiteboard

Work items for oneiric-alpha-1:
[didrocks] rebase our multiple sessions fallback system from GNOME one: DONE
[didrocks] bring back the compiz + gnome-panel which doesn't exist in debian: DONE

Work items for oneiric-alpha-2:
[didrocks] remove session saving as long as we have no good story for it. Hide it on the GUI as well: DONE

Work items for ubuntu-11.10-beta-2:
[didrocks] implement session runability tests in LightDM: DONE

Work items (ubuntu-11.10):
[ted] promote GApplication and proper engineering for supporting session saving (speak to rick or something to add to developer.u.c): POSTPONED
[lallenlowe] review gnome control center-exposed settings, figure which impact more than one session (and break another session): DONE

(I'm pretty sure that "Keyboard" is the only one that needs to be separated) Keyboard (not Keyboard Layout)

-------------
Notes from the session:

This blueprint is about discussing session management in Oneiric. Depending on the choice of the DM (another discussion on lightdm by default), we will either externalize the session type choice to the DM or keep it in gnome-session.
We will also discuss the removed feature of session saving, impact it can have to bring it back, work needed and compiz support of it.
email references:

- https://lists.ubuntu.com/archives/ubuntu-desktop/2010-December/002708.html
- https://lists.ubuntu.com/archives/ubuntu-desktop/2011-January/002734.html

= Session saving =

We've been adding new session types, e.g UNR, UNE, now Ubuntu Classic, Ubuntu, Ubuntu Classic (no effects), etc. implemented starting Lucid.
- Quite hackish, many corner cases
- Needs planning from the beginning
- Session saving not design for other options than a default session and fallbacks

Current items:
- Ubuntu
- Ubuntu Classic
- Ubuntu Classic (no effects)

Used by: Xubuntu, Unity-2d, etc.+-

GNOME and Ubuntu have removed session saving initially during the Natty cycle, but now Gnome has it back.

Corner cases / Issues:
 - UNE used mutter for compositing: saved sessions would try to start mutter with unity (fail)
 - Session saving didn't work
 - Applications are opened but old documents not reopened
 - Session saving at exit is a potential issue (e.g. the session gets killed, can't save stuff)
   - this is why applications need to register with gnome-session
 - apps need to be engineered for session saving; not something that can be bolted on later

Things to look into:
 - starting whatever is saved in the session in all sessions?
 - whether applications should save state (mpt talked about it)

What to do with those who already have sessions saved?
 - Don't reload old sessions from 6 months ago (check timestamps/freshness)

= Session management =

Fallbacks:
 - Unity, and if not (doesn't run for some reason, fails checks), Unity-2d
 - If no hardware support at all, fallback to metacity?
 - Terminal fallback (e.g. failsafe session)
Session name doesn't change when you fallback to a different session
 - because of this changes to settings often affect all sessions.
 - should define settings that may be problematic and figure a way to isolate them
LightDM to make decisions on which sessions can be started and only display those.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.