Since the dawn of time, gnome-session has been the venerable session manager the GNOME desktop. It is responsible for starting the display manager, auto-starting applications, providing a session management API over D-Bus, and much more.
Nowadays we can do better. We've had systemd around and capable of managing user sessions as well as system services for some time now. It offers us the possibility of providing more advanced session management capabilities. With systemd it becomes possible to start things in response to events (such as other units starting up successfully), to handle crashing services gracefully, to provide better access to logs, and so on.
In this talk we'll describe our approach to starting and managing GNOME sessions with a systemd user instance, and discuss where we can go from here.