systemd/man/systemd-xdg-autostart-generator.xml
Benjamin Berg 048d469999 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.
2022-01-14 16:20:45 +09:00

107 lines
4.4 KiB
XML

<?xml version="1.0"?>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd-xdg-autostart-generator" conditional="ENABLE_XDG_AUTOSTART">
<refentryinfo>
<title>systemd-xdg-autostart-generator</title>
<productname>systemd</productname>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-xdg-autostart-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-xdg-autostart-generator</refname>
<refpurpose>User unit generator for XDG autostart files</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/user-generators/systemd-xdg-autostart-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><filename>systemd-xdg-autostart-generator</filename> is a generator
that creates .service units for
<ulink url="https://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html">XDG autostart</ulink>
files.
This permits desktop environments to delegate startup of these applications to
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
.</para>
<para>Units created by <filename>systemd-xdg-autostart-generator</filename>
can be started by the desktop environment using <literal>xdg-desktop-autostart.target</literal>.
See
<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>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>