]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - man/org.freedesktop.login1.xml
man: fix incorrectly placed full stop
[thirdparty/systemd.git] / man / org.freedesktop.login1.xml
index 84dded384919355a6cfe4a2c3c12f16657c827c9..1b7c3b642133b2d2fc5a1467faf8ad51136bfde9 100644 (file)
 
     <para>The service exposes the following interfaces on the Manager object on the bus:</para>
 
-    <programlisting>
-$ gdbus introspect --system \
-        --dest org.freedesktop.login1 \
-        --object-path /org/freedesktop/login1
-
+    <programlisting executable="systemd-logind" node="/org/freedesktop/login1" interface="org.freedesktop.login1.Manager">
 node /org/freedesktop/login1 {
   interface org.freedesktop.login1.Manager {
     methods:
@@ -221,6 +217,8 @@ node /org/freedesktop/login1 {
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly t RuntimeDirectorySize = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
+      readonly t RuntimeDirectoryInodesMax = ...;
+      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly t InhibitorsMax = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
       readonly t NCurrentInhibitors = ...;
@@ -235,6 +233,212 @@ node /org/freedesktop/login1 {
 };
     </programlisting>
 
+    <!--Autogenerated cross-references for systemd.directives, do not edit-->
+
+    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.login1.Manager"/>
+
+    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.login1.Manager"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="GetSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="GetSessionByPID()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="GetUser()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="GetUserByPID()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="GetSeat()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ListSessions()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ListUsers()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ListSeats()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ListInhibitors()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CreateSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ReleaseSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ActivateSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ActivateSessionOnSeat()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="LockSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="UnlockSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="LockSessions()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="UnlockSessions()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="KillSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="KillUser()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="TerminateSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="TerminateUser()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="TerminateSeat()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetUserLinger()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="AttachDevice()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="FlushDevices()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="PowerOff()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Reboot()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Halt()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Suspend()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Hibernate()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="HybridSleep()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SuspendThenHibernate()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanPowerOff()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanReboot()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanHalt()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanSuspend()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanHibernate()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanHybridSleep()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanSuspendThenHibernate()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ScheduleShutdown()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CancelScheduledShutdown()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Inhibit()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanRebootParameter()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetRebootParameter()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanRebootToFirmwareSetup()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetRebootToFirmwareSetup()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanRebootToBootLoaderMenu()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetRebootToBootLoaderMenu()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="CanRebootToBootLoaderEntry()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetRebootToBootLoaderEntry()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetWallMessage()"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="SessionNew"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="SessionRemoved"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="UserNew"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="UserRemoved"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="SeatNew"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="SeatRemoved"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="PrepareForShutdown"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="PrepareForSleep"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="EnableWallMessages"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="WallMessage"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="NAutoVTs"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="KillOnlyUsers"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="KillExcludeUsers"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="KillUserProcesses"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RebootParameter"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RebootToFirmwareSetup"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RebootToBootLoaderMenu"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RebootToBootLoaderEntry"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="BootLoaderEntries"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleHint"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleSinceHint"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleSinceHintMonotonic"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="BlockInhibited"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="DelayInhibited"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="InhibitDelayMaxUSec"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="UserStopDelayUSec"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="HandlePowerKey"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="HandleSuspendKey"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="HandleHibernateKey"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="HandleLidSwitch"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="HandleLidSwitchExternalPower"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="HandleLidSwitchDocked"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="HoldoffTimeoutUSec"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleAction"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleActionUSec"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="PreparingForShutdown"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="PreparingForSleep"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="ScheduledShutdown"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Docked"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="LidClosed"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="OnExternalPower"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RemoveIPC"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectorySize"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RuntimeDirectoryInodesMax"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="InhibitorsMax"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="NCurrentInhibitors"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="SessionsMax"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="NCurrentSessions"/>
+
+    <!--End of Autogenerated section-->
+
     <refsect2>
       <title>Methods</title>
 
@@ -292,22 +496,24 @@ node /org/freedesktop/login1 {
       and seat are identified by their respective IDs.</para>
 
       <para><function>SetUserLinger()</function> enables or disables user lingering. If enabled, the runtime
-      directory of a user is kept around and he may continue to run processes while he is logged out. If
+      directory of a user is kept around and they may continue to run processes while logged out. If
       disabled, the runtime directory goes away as soon as they log out. <function>SetUserLinger()</function>
       expects three arguments: the UID, a boolean whether to enable/disable and a boolean controlling the
-      PolicyKit authorization interactivity (see below). Note that the user linger state is persistently
+      <ulink url="https://www.freedesktop.org/software/polkit/docs/latest/">polkit</ulink>
+      authorization interactivity (see below). Note that the user linger state is persistently
       stored on disk.</para>
 
       <para><function>AttachDevice()</function> may be used to assign a specific device to a specific
-      seat. The device is identified by its /sys path and must be eligible for seat assignments. <function>AttachDevice()</function> takes three
-      arguments: the seat id, the sysfs path, and a boolean for controlling PolicyKit interactivity (see
-      below). Device assignments are persistently stored on disk. To create a new seat, simply specify a
-      previously unused seat id. For more information about the seat assignment logic see
+      seat. The device is identified by its <filename>/sys</filename> path and must be eligible for seat
+      assignments. <function>AttachDevice()</function> takes three arguments: the seat id, the sysfs path,
+      and a boolean for controlling polkit interactivity (see below). Device assignments are persistently
+      stored on disk. To create a new seat, simply specify a previously unused seat id. For more information
+      about the seat assignment logic see
       <ulink url="https://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat for Linux</ulink>.
       </para>
 
       <para><function>FlushDevices()</function> removes all explicit seat assignments for devices, resetting
-      all assignments to the automatic defaults. The only argument it takes is the PolicyKit interactivity
+      all assignments to the automatic defaults. The only argument it takes is the polkit interactivity
       boolean (see below).</para>
 
       <para><function>PowerOff()</function>, <function>Reboot()</function>, <function>Halt()</function>,
@@ -317,9 +523,9 @@ node /org/freedesktop/login1 {
       the machine is powered down). <function>HybridSleep()</function> results in the system entering a
       hybrid-sleep mode, i.e. the system is both hibernated and suspended.
       <function>SuspendThenHibernate()</function> results in the system being suspended, then later woken
-      using an RTC timer and hibernated. The only argument is the PolicyKit interactivity boolean
+      using an RTC timer and hibernated. The only argument is the polkit interactivity boolean
       <varname>interactive</varname> (see below). The main purpose of these calls is that they enforce
-      PolicyKit policy and hence allow powering off/rebooting/suspending/hibernating even by unprivileged
+      polkit policy and hence allow powering off/rebooting/suspending/hibernating even by unprivileged
       users. They also enforce inhibition locks. UIs should expose these calls as the primary mechanism to
       poweroff/reboot/suspend/hibernate the machine.</para>
 
@@ -361,7 +567,7 @@ node /org/freedesktop/login1 {
 
       <para><function>SetWallMessage()</function> sets the wall message (the message that will be sent out to
       all terminals and stored in a
-      <citerefentry><refentrytitle>utmp</refentrytitle><manvolnum>5</manvolnum></citerefentry> record) for a
+      <citerefentry project='man-pages'><refentrytitle>utmp</refentrytitle><manvolnum>5</manvolnum></citerefentry> record) for a
       subsequent scheduled shutdown operation. The parameter <varname>wall_message</varname> specifies the
       shutdown reason (and may be empty) which will be included in the shutdown message. The parameter
       <varname>enable</varname> specifies whether to print a wall message on shutdown.</para>
@@ -377,7 +583,7 @@ node /org/freedesktop/login1 {
       should be a short human readable string identifying the reason why the lock is taken. Finally,
       <varname>mode</varname> is either <literal>block</literal> or <literal>delay</literal> which encodes
       whether the inhibit shall be consider mandatory or whether it should just delay the operation to a
-      certain maximum time. The call returns a file descriptor. The lock is released the moment this file
+      certain maximum time. The method returns a file descriptor. The lock is released the moment this file
       descriptor and all its duplicates are closed. For more information on the inhibition logic see
       <ulink url="http://www.freedesktop.org/wiki/Software/systemd/inhibit">Inhibitor Locks</ulink>.
       </para>
@@ -421,7 +627,8 @@ node /org/freedesktop/login1 {
       <varname>HandleLidSwitchExternalPower</varname>, <varname>HandleLidSwitchDocked</varname>,
       <varname>IdleActionUSec</varname>, <varname>HoldoffTimeoutUSec</varname>,
       <varname>RemoveIPC</varname>, <varname>RuntimeDirectorySize</varname>,
-      <varname>InhibitorsMax</varname>, and <varname>SessionsMax</varname>.
+      <varname>RuntimeDirectoryInodesMax</varname>, <varname>InhibitorsMax</varname>, and
+      <varname>SessionsMax</varname>.
       </para>
 
       <para>The <varname>IdleHint</varname> property reflects the idle hint state of the system. If the
@@ -474,7 +681,7 @@ node /org/freedesktop/login1 {
     <refsect2>
       <title>Security</title>
 
-      <para>A number of operations are protected via the PolicyKit privilege
+      <para>A number of operations are protected via the polkit privilege
       system. <function>SetUserLinger()</function> requires the
       <interfacename>org.freedesktop.login1.set-user-linger</interfacename>
       privilege. <function>AttachDevice()</function> requires
@@ -527,7 +734,7 @@ node /org/freedesktop/login1 {
       <interfacename>org.freedesktop.login1.inhibit-handle-lid-switch</interfacename> depending on the lock
       type and mode taken.</para>
 
-      <para>The <varname>interactive</varname> boolean parameters can be used to control whether PolicyKit
+      <para>The <varname>interactive</varname> boolean parameters can be used to control whether polkit
       should interactively ask the user for authentication credentials if required.</para>
     </refsect2>
   </refsect1>
@@ -535,10 +742,7 @@ node /org/freedesktop/login1 {
   <refsect1>
     <title>Seat Objects</title>
 
-    <programlisting>
-$ gdbus introspect --system --dest org.freedesktop.login1 \
-      --object-path /org/freedesktop/login1/seat/seat0
-
+    <programlisting executable="systemd-logind" node="/org/freedesktop/login1/seat/seat0" interface="org.freedesktop.login1.Seat">
 node /org/freedesktop/login1/seat/seat0 {
   interface org.freedesktop.login1.Seat {
     methods:
@@ -552,8 +756,6 @@ node /org/freedesktop/login1/seat/seat0 {
       readonly s Id = '...';
       readonly (so) ActiveSession = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
-      readonly b CanMultiSession = ...;
-      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly b CanTTY = ...;
       readonly b CanGraphical = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
@@ -568,6 +770,40 @@ node /org/freedesktop/login1/seat/seat0 {
 };
     </programlisting>
 
+    <!--Autogenerated cross-references for systemd.directives, do not edit-->
+
+    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.login1.Seat"/>
+
+    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.login1.Seat"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Terminate()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ActivateSession()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SwitchTo()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SwitchToNext()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SwitchToPrevious()"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Id"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="ActiveSession"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="CanTTY"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="CanGraphical"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Sessions"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleHint"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleSinceHint"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleSinceHintMonotonic"/>
+
+    <!--End of Autogenerated section-->
+
     <refsect2>
       <title>Methods</title>
 
@@ -585,7 +821,7 @@ node /org/freedesktop/login1/seat/seat0 {
       <title>Signals</title>
 
       <para>Whenever <function>ActiveSession</function>, <function>Sessions</function>,
-      <function>CanGraphical</function>, <function>CanMultiSession</function> and <function>CanTTY</function>
+      <function>CanGraphical</function>, <function>CanTTY</function>,
       or the idle state changes, <function>PropertyChanged</function> signals are sent out to which clients
       can subscribe.</para>
     </refsect2>
@@ -598,26 +834,22 @@ node /org/freedesktop/login1/seat/seat0 {
       <para><varname>ActiveSession</varname> encodes the currently active session if there is one. It is a
       structure consisting of the session id and the object path.</para>
 
-      <para><varname>CanMultiSession</varname> encodes whether the session is multi-session capable,
-      <varname>CanTTY</varname> whether it is suitable for text logins, <varname>CanGraphical</varname>
-      whether it is suitable for graphical sessions.</para>
+      <para><varname>CanTTY</varname> encodes whether the session is suitable for text logins, and
+      <varname>CanGraphical</varname> whether it is suitable for graphical sessions.</para>
 
       <para>The <varname>Sessions</varname> property is an array of all current sessions of this seat, each
       encoded in a structure consisting of the ID and the object path.</para>
 
       <para>The <varname>IdleHint</varname>, <varname>IdleSinceHint</varname>, and
-      <varname>IdleSinceHint</varname> properties encode the idle state, similar to the one exposed on the
-      Manager object, but specific for this seat.</para>
+      <varname>IdleSinceHintMonotonic</varname> properties encode the idle state, similar to the ones exposed
+      on the <interfacename>Manager</interfacename> object, but specific for this seat.</para>
     </refsect2>
   </refsect1>
 
   <refsect1>
     <title>User Objects</title>
 
-    <programlisting>
-$ gdbus introspect --system --dest org.freedesktop.login1 \
-        --object-path /org/freedesktop/login1/user/_1000
-
+    <programlisting executable="systemd-logind" node="/org/freedesktop/login1/user/_1000" interface="org.freedesktop.login1.User">
 node /org/freedesktop/login1/user/_1000 {
   interface org.freedesktop.login1.User {
     methods:
@@ -657,6 +889,48 @@ node /org/freedesktop/login1/user/_1000 {
 };
     </programlisting>
 
+    <!--Autogenerated cross-references for systemd.directives, do not edit-->
+
+    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.login1.User"/>
+
+    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.login1.User"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Terminate()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Kill()"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="UID"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="GID"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Name"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Timestamp"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="TimestampMonotonic"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RuntimePath"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Service"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Slice"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Display"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="State"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Sessions"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleHint"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleSinceHint"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleSinceHintMonotonic"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Linger"/>
+
+    <!--End of Autogenerated section-->
+
     <refsect2>
       <title>Methods</title>
 
@@ -720,11 +994,8 @@ node /org/freedesktop/login1/user/_1000 {
   <refsect1>
     <title>Session Objects</title>
 
-    <programlisting>
-$ gdbus introspect --system --dest org.freedesktop.login1 \
-        --object-path /org/freedesktop/login1/session/45
-
-node /org/freedesktop/login1/session/45 {
+    <programlisting executable="systemd-logind" node="/org/freedesktop/login1/session/1" interface="org.freedesktop.login1.Session">
+node /org/freedesktop/login1/session/1 {
   interface org.freedesktop.login1.Session {
     methods:
       Terminate();
@@ -737,6 +1008,7 @@ node /org/freedesktop/login1/session/45 {
            in  i signal_number);
       TakeControl(in  b force);
       ReleaseControl();
+      SetType(in  s type);
       TakeDevice(in  u major,
                  in  u minor,
                  out h fd,
@@ -792,7 +1064,6 @@ node /org/freedesktop/login1/session/45 {
       readonly u Leader = ...;
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly u Audit = ...;
-      @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly s Type = '...';
       @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
       readonly s Class = '...';
@@ -809,6 +1080,100 @@ node /org/freedesktop/login1/session/45 {
 };
     </programlisting>
 
+    <!--Autogenerated cross-references for systemd.directives, do not edit-->
+
+    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.login1.Session"/>
+
+    <variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.login1.Session"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Terminate()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Activate()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Lock()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Unlock()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetIdleHint()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetLockedHint()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="Kill()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="TakeControl()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ReleaseControl()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetType()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="TakeDevice()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="ReleaseDevice()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="PauseDeviceComplete()"/>
+
+    <variablelist class="dbus-method" generated="True" extra-ref="SetBrightness()"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="PauseDevice"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="ResumeDevice"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="Lock"/>
+
+    <variablelist class="dbus-signal" generated="True" extra-ref="Unlock"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Id"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="User"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Name"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Timestamp"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="TimestampMonotonic"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="VTNr"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Seat"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="TTY"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Display"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Remote"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RemoteHost"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="RemoteUser"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Service"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Desktop"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Scope"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Leader"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Audit"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Type"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Class"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="Active"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="State"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleHint"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleSinceHint"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="IdleSinceHintMonotonic"/>
+
+    <variablelist class="dbus-property" generated="True" extra-ref="LockedHint"/>
+
+    <!--End of Autogenerated section-->
+
     <refsect2>
       <title>Methods</title>
 
@@ -822,13 +1187,20 @@ node /org/freedesktop/login1/session/45 {
       <para><function>TakeControl()</function> allows a process to take exclusive managed device
       access-control for that session. Only one D-Bus connection can be a controller for a given session at any
       time. If the <varname>force</varname> argument is set (root only), an existing controller is kicked
-      out and replaced. Otherwise, this call fails if there is already a controller. Note that this call is
+      out and replaced. Otherwise, this method fails if there is already a controller. Note that this method is
       limited to D-Bus users with the effective UID set to the user of the session or root.</para>
 
-      <para><function>ReleaseControl()</function> drops control of a given session. Closing the
-      D-Bus connection implicitly releases control as well. See <function>TakeControl()</function> for more information. This
-      method also releases all devices for which the controller requested ownership via <function>TakeDevice()</function>.
-      </para>
+      <para><function>ReleaseControl()</function> drops control of a given session. Closing the D-Bus
+      connection implicitly releases control as well. See <function>TakeControl()</function> for more
+      information. This method also releases all devices for which the controller requested ownership via
+      <function>TakeDevice()</function>.</para>
+
+      <para><function>SetType()</function> allows the type of the session to be changed dynamically.  It can
+      only be called by session's current controller. If <function>TakeControl()</function> has not been
+      called, this method will fail. In addition, the session type will be reset to its original value once
+      control is released, either by calling <function>ReleaseControl()</function> or closing the D-Bus
+      connection. This should help prevent a session from entering an inconsistent state, for example if the
+      controller crashes. The only argument <varname>type</varname> is the new session type.</para>
 
       <para><function>TakeDevice()</function> allows a session controller to get a file descriptor for a
       specific device. Pass in the major and minor numbers of the character device and
@@ -973,6 +1345,42 @@ node /org/freedesktop/login1/session/45 {
     </refsect2>
   </refsect1>
 
+  <refsect1>
+    <title>Examples</title>
+
+    <example>
+      <title>Introspect <interfacename>org.freedesktop.login1.Manager</interfacename> on the bus</title>
+
+      <programlisting>$ gdbus introspect --system --dest org.freedesktop.login1 \
+  --object-path /org/freedesktop/login1
+      </programlisting>
+    </example>
+
+    <example>
+      <title>Introspect <interfacename>org.freedesktop.login1.Seat</interfacename> on the bus</title>
+
+      <programlisting>$ gdbus introspect --system --dest org.freedesktop.login1 \
+ --object-path /org/freedesktop/login1/seat/seat0
+      </programlisting>
+    </example>
+
+    <example>
+      <title>Introspect <interfacename>org.freedesktop.login1.User</interfacename> on the bus</title>
+
+      <programlisting>$ gdbus introspect --system --dest org.freedesktop.login1 \
+  --object-path /org/freedesktop/login1/user/_1000
+      </programlisting>
+    </example>
+
+    <example>
+      <title>Introspect <interfacename>org.freedesktop.login1.Session</interfacename> on the bus</title>
+
+      <programlisting>$ gdbus introspect --system --dest org.freedesktop.login1 \
+  --object-path /org/freedesktop/login1/session/45
+      </programlisting>
+    </example>
+  </refsect1>
+
   <refsect1>
     <title>Versioning</title>