<protocol name="session_manager">

  <interface name="session_manager" version="1">

    <!-- A greeter surface per output? -->
    <request name="show_login_screen">
      <arg name="session" type="object" interface="session"/>
    </request>

    <!-- Request that the compositor shows a dialog from the session
         manager.  Typically overlaid on the current session, faded or
         blurred a bit.  The dialogs that the session manager might
         want to show here are fast-user-switch dialog or a secure
         access dialog (change password, log out, lock screen) -->
    <request name="show_dialog">
      <arg name="surface" type="object" interface="wl_surface"/>
    </request>

    <!-- Hide the dialog.  This request is only valid if the dialog is
         currently up (ie show_dialog above). -->
    <request name="hide_dialog"/>

    <!-- If a session doesn't exist for the user, this request creates
         one.  The fd passed is the socket to the compositor and the
         session compositor (or X server) will use that. -->
    <request name="create_session">
      <arg name="id" type="new_id" interface="session"/>
      <arg name="fd" type="fd"/>
    </request>

    <!-- Once the user has authenticated, the session manager issues
         this request to switch to the session for that user.  How the
         user aiuthenticates is up to the session manager.  Examples
         are: the login screen or from the f-u-s dialog.  The session
         can also get a list of available users from the session
         manager, populate a menu with the choices and show that in
         the session UI.  The user can then select and auth the
         session to switch to from within the session, and then
         communicate the credentials to the session manager.  Either
         way, at then end the session manager calls this request to
         activate the selected session.
         -->
    <request name="activate_session">
      <arg name="session" type="object" interface="session"/>
    </request>

    <!-- Secure access was requested (ctrl-alt-del).  Bring up a
         dialog to do the secure access thing. -->
    <event name="secure_access"/>

  </interface>

  <interface name="session" version="1">
  </interface>

</protocol>

