Provided by: gnome-session-bin_42.0-1ubuntu2_amd64 bug

NAME

       gnome-session - Start the GNOME desktop environment

SYNOPSIS

       gnome-session [-a|--autostart=DIR] [--session=SESSION] [--failsafe|-f] [--debug] [--whale]

DESCRIPTION

       The  gnome-session program starts up the GNOME desktop environment. This command is typically executed by
       your login manager (either gdm, xdm, or from your X startup scripts). It  will  load  either  your  saved
       session, or it will provide a default session for the user as defined by the system administrator (or the
       default GNOME installation on your system). Note that  gnome-session  is  a  wrapper  script  for  gnome-
       session-binary.

       The  default  session  is  defined  in  gnome.session,  a  .desktop-like  file  that  is  looked  for  in
       $XDG_CONFIG_HOME/gnome-session/sessions,           $XDG_CONFIG_DIRS/gnome-session/sessions            and
       $XDG_DATA_DIRS/gnome-session/sessions.

       When   saving   a   session,   gnome-session   saves   the   currently   running   applications   in  the
       $XDG_CONFIG_HOME/gnome-session/saved-session directory. Saving sessions is only supported with the legacy
       non-systemd startup method.

       gnome-session  is  an  X11R6  session  manager.  It can manage GNOME applications as well as any X11R6 SM
       compliant application.

OPTIONS

       The following options are supported:

       --autostart=DIR
              The directory DIR to be searched for autostart .desktop files. This option can  be  used  multiple
              times.  When this option is present, then default autostart directories will not be searched.

       --session=SESSION
              Use the applications defined in SESSION.session. If not specified, gnome.session will be used.

       --builtin
              Use  the  legacy  non-systemd  method  of  managing  the user session. This is the opposite of the
              --systemd option.

       --systemd
              Use the systemd method of managing the user session. This is the opposite of the --builtin option.

       --failsafe
              Run in fail-safe mode. User-specified applications will not be started.

       --debug
              Enable debugging code.

       --whale
              Show the fail whale in a dialog for debugging it.

SESSION DEFINITION

       Sessions are defined in .session files, that are using a .desktop-like format, with the following keys in
       the GNOME Session group:

       Name   Name of the session. This can be localized.

       RequiredComponents
              List  of  component  identifiers  (desktop  files)  that are required by the session. The required
              components will always run in the session.

       Here is an example of a session definition:

           [GNOME Session]
           Name=GNOME
           RequiredComponents=gnome-shell;gnome-settings-daemon;

       In systemd managed sessions the RequiredComponents may be provided by systemd units instead. In this case
       the  corresponding  .desktop  file  needs  to contain X-GNOME-HiddenUnderSystemd=true. gnome-session will
       ignore these components and rely on systemd to manage  them  appropriately,  see  the  systemd  for  more
       information on how this works.

       The  .session  files  are  looked for in $XDG_CONFIG_HOME/gnome-session/sessions, $XDG_CONFIG_DIRS/gnome-
       session/sessions and $XDG_DATA_DIRS/gnome-session/sessions.

systemd

       gnome-session can pass much of the session management over to systemd (see the --systemd option which may
       be  the  default  since 3.34). In this case, startup components that have X-GNOME-HiddenUnderSystemd=true
       set in their .desktop file will be ignored by gnome-session. It instead relies on  the  fact  that  these
       components are managed by systemd.

       As  of  GNOME  3.34  the  systemd  support is new and the customizing the configuration is not yet easily
       possible. With GNOME 3.34 it may be best to use --builtin if session customizations are required. This is
       due to the way that GNOME currently defines the components that will be started on each session type.

       systemd  provides the two special targets graphical-session.target and graphical-session-pre.target which
       are fully functional and should be used. gnome-session provides the following main targets:

       gnome-session.target
              Generic unit that will be active throughout the session. Similar to graphical-session.target.

       gnome-session-pre.target
              Used for tasks that need  to  be  done  before  session  startup.  Similar  to  graphical-session-
              pre.target.

       gnome-session-x11@SESSION.target gnome-session-wayland@SESSION.target
              Main  unit  started for X11/wayland based session. SESSION is set according to the session that is
              passed in --session.

       gnome-session-x11.target gnome-session-wayland.target
              Convenience units without the session embedded into the target.

       gnome-session@SESSION.target
              Convenience unit with just the SESSION information embedded.

       gnome-session-x11-services.target
              Special unit started when X11 services are needed. This will be  used  from  GNOME  3.36  onwards.
              Programs will need to use the special GNOME_SETUP_DISPLAY environment variable instead of DISPLAY.

       Note  that  care must be taken to set appropriate After= rules. It is also strongly recommended to always
       do this  in  combination  with  BindsTo=  or  PartOf=  on  one  of  the  core  targets  (e.g.  graphical-
       session.target).

       Units  are required to set CollectMode=inactive-or-failed. In addition, it is strongly recommended to set
       TimeoutStopSec=5 so that logout will not be delayed indefinitely  in  case  the  process  does  not  stop
       properly.

ENVIRONMENT

       gnome-session sets several environment variables for the use of its child processes:

       SESSION_MANAGER

              This variable is used by session-manager aware clients to contact gnome-session.

       DISPLAY

              This  variable  is  set  to  the X display being used by gnome-session. Note that if the --display
              option is used this might be different from the setting of the environment  variable  when  gnome-
              session is invoked.

       Behavior of gnome-session ifself can be modified via the following environment variable:

       GNOME_SESSION_AUTOSTART_DIR

              This  variable  specifies a list of directories to the searched for autostart files. This variable
              overrides all directories specified via the --autostart option, as well as all  default  autostart
              directories.

FILES

       $XDG_CONFIG_HOME/autostart $XDG_CONFIG_DIRS/autostart /usr/share/gnome/autostart

              Applications  defined  via  .desktop  files in those directories will be started on login.  gnome-
              session-properties(1) can be used to easily configure them.

       $XDG_CONFIG_HOME/gnome-session/sessions   $XDG_CONFIG_DIRS/gnome-session/sessions   $XDG_DATA_DIRS/gnome-
       session/sessions

              These directories contain the .session files that can be used with the --session option.

       $XDG_CONFIG_HOME/gnome-session/saved-session

              This directory contains the list of applications of the saved session.

BUGS

       If     you     find     bugs    in    the    gnome-session    program,    please    report    these    on
       https://gitlab.gnome.org/GNOME/gnome-session/issues.

SEE ALSO

       gnome-session-properties(1) gnome-session-quit(1)