Git Repository
https://gitlab.gnome.org/GNOME/gnome-session
Session Management
Session management in GNOME is handled by gnome-session. The default session on GNOME uses GNOME Shell, but gnome-session is also able to start other sessions with different desktop environments. The gnome-session script is usually started by the display manager (such as GDM3) after a user has entered the correct credentials on the login screen. If gnome-session is invoked with the --systemd option (available since GNOME 3.34), then gnome-session will use systemd to create a user slice and start the required services.
Session Manager
/GnomeSession /NewGnomeSession
LucasRocha is currently hacking on this, for GNOME 2.24 (See Todo)
SM Client
Thoughts on /SavingState
Session capplet
Alternate Designs
ColinWalters' proposal for /AutoSession
Relevant Art
Windows Vista
Links
Initial proposal on desktop-devel-list.
XSMP, libSM, ICE, and libICE docs (PDF only)
GNOME/KDE consensus on what some parts of the XSMP spec mean (summary of this thread)
ICCCM Session Management conventions (mostly only relevant to having the WM remember window positions, which never really worked right, as discussed at the end of this message and in other places)
Obsolete X11R5 SM spec (WM_SAVE_YOURSELF; we most likely want nothing to do with this)
freedesktop desktop file spec (used by autostart)
markmc's session management proposal from last summer. This proposal involved a whole new architecture, but much of the argument is still relevant.