man: Add more details about desktop file processing

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.
This commit is contained in:
Benjamin Berg 2022-01-13 18:47:08 +01:00 committed by Yu Watanabe
parent 007721e939
commit 048d469999

View file

@ -41,6 +41,55 @@
<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>