]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
man: Add more details about desktop file processing
authorBenjamin Berg <bberg@redhat.com>
Thu, 13 Jan 2022 17:47:08 +0000 (18:47 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 14 Jan 2022 07:20:45 +0000 (16:20 +0900)
In particular, mention the contract the generator has with external
ExecCondition= binaries that may be provided by desktop environments.

But, also mention all the other relevant keys. In particular
X-systemd-skip= is important to be documented.

man/systemd-xdg-autostart-generator.xml

index 4d153c30403afff7c9166f4115e4722cab0061de..bafe6e9c2d3daf6e92ac30d61c98fb949f407e98 100644 (file)
     <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
     for more details.</para>
 
+    <para>XDG autostart may be conditionalized using both standardized and non-standardized keys.
+    In order to handle these, the generator may create one or more <varname>ExecCondition=</varname> entries.
+    For non-standardized keys, well-known helper binaries provided by Desktop Environments are used.
+    All external helpers <emphasis>must</emphasis> detect their corresponding desktop environment and
+    <emphasis>must</emphasis> return success when run in a different environment.
+    This is important as all <varname>ExecCondition=</varname> directives must succeed for an application to be started.</para>
+
+    <table>
+      <title>
+        Special XDG desktop file entries that are processed
+      </title>
+      <tgroup cols='2'>
+        <colspec colname='entry' />
+        <colspec colname='handling' />
+        <thead>
+          <row>
+            <entry>Entry</entry>
+            <entry>Handling</entry>
+          </row>
+        </thead>
+        <tbody>
+          <row>
+            <entry><varname>Hidden=</varname>, <varname>X-systemd-skip=</varname></entry>
+            <entry>No service will be generated if set to true</entry>
+          </row>
+          <row>
+            <entry><varname>OnlyShowIn=</varname>, <varname>NotShowIn=</varname></entry>
+            <entry><varname>ExecCondition=</varname> using <filename>systemd-xdg-autostart-condition</filename></entry>
+          </row>
+          <row>
+            <entry><varname>TryExec=</varname></entry>
+            <entry>No service will be generated if the binary does not exist or cannot be executed</entry>
+          </row>
+          <row>
+            <entry><varname>AutostartCondition=</varname> (GNOME extension)</entry>
+            <entry><varname>ExecCondition=</varname> using <filename>gnome-systemd-autostart-condition</filename></entry>
+          </row>
+          <row>
+            <entry><varname>X-GNOME-Autostart-Phase=</varname></entry>
+            <entry>No service will be generated if set to any value</entry>
+          </row>
+          <row>
+            <entry><varname>X-KDE-autostart-condition=</varname></entry>
+            <entry><varname>ExecCondition=</varname> using <filename>kde-systemd-start-condition</filename></entry>
+          </row>
+        </tbody>
+      </tgroup>
+    </table>
+
     <para><filename>systemd-xdg-autostart-generator</filename> implements
     <citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
   </refsect1>