1. 14 Aug, 2019 4 commits
  2. 13 Aug, 2019 5 commits
  3. 11 Aug, 2019 1 commit
  4. 06 Aug, 2019 3 commits
  5. 05 Aug, 2019 1 commit
  6. 02 Aug, 2019 1 commit
  7. 01 Aug, 2019 14 commits
    • Benjamin Berg's avatar
      main: Export autostart dir into environment · e6a94c31
      Benjamin Berg authored
      The autostart directory that was overriden by GDM needs to be passed to
      the systemd service via environment. Export the parameter when needed so
      that this will work properly.
      e6a94c31
    • Benjamin Berg's avatar
      manager: Rely on systemd restarting DBus already · 7c7d16fe
      Benjamin Berg authored
      If the session is managed using systemd, then the shutdown target will
      trigger a restart of DBus. So only restart DBus when the session is not
      managed using systemd.
      7c7d16fe
    • Benjamin Berg's avatar
      manager: Quit session manager after completing shutdown · cf86229d
      Benjamin Berg authored
      Without this gnome-session-binary will simply continue to live when the
      user requested a shutdown or reboot. In all cases (systemd, consolekit,
      otherwise) it makes sense to simply quit g-s-m after completing the
      shutdown.
      
      In fact, we could just quit immediately in all cases, as this will
      release the inhibitor FDs, but that wouldn't be quite as clean.
      cf86229d
    • Benjamin Berg's avatar
      data: Add systemd user units · 0b4fedab
      Benjamin Berg authored
      The main units are started in the following order:
       * graphical-session-pre.target (systemd special)
       * gnome-session-pre.target
       * gnome-session-initialized.target
           Signals gnome-session-binary using gnome-session-signal-init.service
       * gnome-session.target
       * graphical-session.target (systemd special)
      
      In addition, there are the following special units:
       * gnome-session-stable.timer and gnome-session-stable.target
           Can be used to modify failure behaviour when the session is
           considered stable
       * gnome-session-shutdown.target
           Should be started with replace-irreversibly when the session should
           be shut down; mostly useful internally by gnome-session with
           OnFailure/OnFailureJobMode
       * gnome-session-failed.target
           Should be start when an important session component failed. This
           can be used for OnFailure
      
      The following additional units can be used for depenencies/conflicts:
       * gnome-session@.target
           To depend/conflict a specific session type (e.g. gnome-login for GDM)
       * gnome-session-{wayland,x11}.target
           Started depending on the session type
       * gnome-session-manager.target
           Started when the session manager is running
           (This is only useful for the shell)
      
      The following additional targets exist:
       * gnome-session-{wayland,x11}@.target
           The initial target that is started, it has no further purpose
      
      Based on work by Iain Lane <iainl@gnome.org>.
      0b4fedab
    • Benjamin Berg's avatar
      gnome-session-ctl: Add helper binary for systemd targets · 922aa727
      Benjamin Berg authored
      This binary is only intended to be used from systemd target to control
      gnome-session and do a few other tasks.
      922aa727
    • Benjamin Berg's avatar
      main: Add systemd gnome-session monitoring code for leader · 7ba953ea
      Benjamin Berg authored
      We are in the situation that gnome-session-binary is the session leader
      process for the user. This process is managed via logind and is inside
      the session scope of the user. This process has an important role for
      the session lifetime management, but we cannot track or manage its state
      from the systemd user instance.
      
      This adds a simple protocol to allow us managing the state. The
      counterpart is in gnome-session-ctl.c.
      
      It works by creating a named fifo called gnome-session-leader-fifo in
      the users runtime directory. The session leader opens it for writing,
      the monitoring process opens it for reading.
      
      By closing the FD the monitor process can signal to the leader that the
      session has been shut down normally. By writing to the FD the leader can
      signal the monitoring process to initiate a clean shutdown of the
      session. If either process crashes or is killed, the FD is closed and
      the other side will also quit.
      7ba953ea
    • Benjamin Berg's avatar
      manager: Add initilization synchronization point DBus API · 9b692a32
      Benjamin Berg authored
      We need to make sure that any XDG application started by gnome-session
      is started after basic initialization is finished (i.e. environment
      variables are set). Note that we end up with only two synchronization
      points between starting XDG applications and systemd units.
      
      The side effect of this is that XDG applications will begin starting up
      at the same time as g-s-d with the planned systemd unit design.
      9b692a32
    • Benjamin Berg's avatar
      manager: Allow fetching the configured session without manager · d080265b
      Benjamin Berg authored
      When starting on systemd we need to know the session to start for the
      target name. However, we don't need anything else from the manager, so
      allow calling the function with NULL.
      d080265b
    • Benjamin Berg's avatar
      manager: Add systemd-managed property · 98becaf1
      Benjamin Berg authored
      When running on systemd a few things need to change in the manager. Add
      a property for this but leave it unused for now.
      98becaf1
    • Benjamin Berg's avatar
      util: Add API to start a systemd unit · 0e30c0f0
      Benjamin Berg authored
      We'll need to start systemd units.
      0e30c0f0
    • Benjamin Berg's avatar
      manager: Integrate with systemd startup notification · 8a91b9e0
      Benjamin Berg authored
      Doing this allows us to signal delay the startup notification until
      basic initialization has been done. It also allows us to signal shutdown
      properly.
      
      While at it, signal a bit more information like the current running
      phase in the status message.
      8a91b9e0
    • Benjamin Berg's avatar
      meson: Add compile time option to control systemd session management · e8e94154
      Benjamin Berg authored
      This is in preparation to add the other parts that allow us to use the
      systemd user instance for session management.
      e8e94154
    • Benjamin Berg's avatar
      fail-whale: Never show logout button in GDM · 90fd9939
      Benjamin Berg authored
      Check the RUNNING_UNDER_GDM environment variable and never show the
      logout button if it is set. This allows running the gnome-session-failed
      with --allow-logout always set simplifying the relevant systemd units.
      90fd9939
    • Benjamin Berg's avatar
      autostart-app: Add X-GNOME-HiddenUnderSystemd for hiding · 3b73720f
      Benjamin Berg authored
      This way applications can install both a systemd unit and an XDG
      autostart file. gnome-session-manager will simply treat any XDG
      application with the option set as Hidden and ignore it.
      
      This even hides required applications from gnome-session-manager.
      3b73720f
  8. 30 Jul, 2019 2 commits
  9. 29 Jul, 2019 4 commits
  10. 22 Jul, 2019 4 commits
  11. 19 Jul, 2019 1 commit