Session dependencies and load order

(This page is in my namespace because it's mostly a way for me to clear my mind, but perhaps is useful to someone else too)

The current situation with dependencies and ordering between gnome-session, mutter/gnome-session and gnome-settings-daemon is a mess

gnome-session

  • Calls in order gnome-settings-daemon and gnome-shell, waits for them to be fully initialized before continuing
  • Uses org.gnome.ScreenSaver (provided by gnome-shell)

  • Uses gtk+ sometimes (thus depends on gnome-settings-daemon/xsettings)
  • Uses org.gnome.SessionManager.EndSessionDialog (provided by gnome-shell) at logout time

gnome-settings-daemon

  • Uses org.gnome.SessionManager for registration

  • Sets environment variables for apps, so must run really early
  • media-keys: uses org.gnome.ShellKeyGrabber

  • media-keys: at times, calls to org.gnome.Shell.Screenshot or org.gnome.Shell.Screencast
  • screensaver-proxy: uses org.gnome.ScreenSaver

  • power: uses org.gnome.SessionManager.Presence

  • xsettings: watches org.gnome.Shell (to determine if the app menu is shown by the shell or not)

gnome-shell

  • Registers with XSMP at startup (mutter)
  • screenshield, messagetray: use org.gnome.SessionManager.Presence

  • rfkill: use org.gnome.SettingsDaemon.Rfkill

  • brightness: use org.gnome.SettingsDaemon.Power.Screen

  • power: use org.gnome.SettingsDaemon.Power

  • keyboard: use org.gnome.SettingsDaemon.Keyboard

  • Watches org.gnome.SettingsDaemon.Orientation

  • Uses org.gnome.Session to check if shutdown is available
  • Uses org.gnome.Session to query for inhibitors

New in 3.10

  • gnome-settings-daemon uses org.gnome.Mutter.DisplayConfig (xrandr, color, power)

Soon

  • gnome-session and gnome-settings-daemon to use org.gnome.Mutter.IdleMonitor instead of X11's IDLETIME

Wayland only

XWayland depends on a running wayland compositor, so mutter must be launched first, and all ordering constraints, as process parent-child relationships and inheritance of environment variables, are suddenly reversed.

GiovanniCampagna/SessionComponentDependencies (last edited 2013-08-18 01:03:33 by GiovanniCampagna)