# gnome-session-manager **Repository Path**: mirrors_chromium_gitlab_gnome/gnome-session-manager ## Basic Information - **Project Name**: gnome-session-manager - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-09 - **Last Updated**: 2025-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README This module contains the initial development of some ideas for a new session manager. For now, it primarily serves as a counter-proposal to Ray Strode's (and others) work in libgnomeservice. These desktop-devel-list mails are relevant: http://mail.gnome.org/archives/desktop-devel-list/2005-July/msg00411.html http://mail.gnome.org/archives/desktop-devel-list/2005-July/msg00583.html To try and summarise quickly: - The session main purpose is to get a usable desktop up and running at login - The task of starting the core desktop is different from starting user applications at login - e.g. the same applications could be started no matter which desktop environment you log in to. - The parts of the desktop environment which need to be started at login are described by .desktop-service files which contain Name, Description, Icon and Exec keys. - The session manager starts a desktop service by spawning the command line specified in the Exec field. If the desktop service subsequently exits for whatever reason (e.g. crashes), the session manager will restart the service. The desktop service must notify the session manager when it has started by completing the startup sequence identified by the contents of the $DESKTOP_STARTUP_ID environment variable. With gtk+, this happens automatically when the first toplevel window is mapped or when the service call gdk_notify_startup_complete(). See http://standards.freedesktop.org/startup-notification-spec/startup-notification-0.1.txt for more details on startup-notification. Good error detection and recovery is vitally important in all this. - The session manager configuration file specifies the location of the .desktop-service files and the list of core desktop services which must have completed their startup sequence before any other desktop services or user programs are started. - The session manager owns the org.gnome.SessionManager D-BUS name on the session bus. The /org/gnome/SessionManager object provides the org.gnome.SessionManager interface which is described in the gsm-dbus-interface.xml file. - What is blatantly missing in all of this is the "save current setup" feature provided by the current session manager using XSMP. The premise is that we'll be dropping this feature and replacing it with the ability for the user to configure which applications get started at login. This all needs lots of discussion but the train of thought is: + XSMP is designed to provide a feature akin to suspend/resume of your session. In practice people primarily use it as a way to configure how they want their desktop to look at login. + XSMP also provides the ability for apps to ask users "you have open documents, do you want to save them?" at logout. These apps should just implement automatic save/restore for all the other cases where data may be lost - application crashes, sudden power loss etc. + In all cases, XSMP is broken by design because it requires every last application to implement this complex protocol in order for the feature to work. + If you could specify which applications you want started at login and which workspaces they should appear on, this should mostly satisfy the real requirments of users. That should be a relatively straightforward feature to implement.