]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - docs/DESKTOP_ENVIRONMENTS.md
Merge pull request #16841 from keszybz/acl-util-bitmask
[thirdparty/systemd.git] / docs / DESKTOP_ENVIRONMENTS.md
index b0ac5b824d6ccae00d27742fefea6f50165522b5..9ae1aefb2013e88205e179108231d02bf8a7a3a4 100644 (file)
@@ -64,7 +64,7 @@ desktop environments should adhere to the following conventions:
    is encouraged.
  * The RANDOM should be a string of random characters to ensure that multiple instances
  of the application can be launched.
- It can be ommitted in the case of a non-transient application services which can ensure
+ It can be omitted in the case of a non-transient application services which can ensure
  multiple instances are not spawned, such as a DBus activated application.
  * If no application ID is available, the launcher should generate a reasonable
    name when possible (e.g. using `basename(argv[0])`). This name must not
@@ -91,16 +91,22 @@ global default for all (graphical) applications.
 
 ## XDG autostart integration
 
-To allow XDG autostart integration, systemd will ship a cross-desktop generator
-to create appropriate units for the autostart directory.
-Desktop Environments will be able to make use of this simply by starting the
-appropriate XDG related targets (representing e.g. content of the
-`$XDG_CURRENT_DESKTOP` environment variable to handle `OnlyShowIn/NotShowIn`).
-The names and ordering rules for these targets are to be defined.
-
-This generator will likely never support certain desktop specific extensions.
-One such example is the GNOME specific feature to bind a service to a settings
-variable.
+To allow XDG autostart integration, systemd ships a cross-desktop generator
+to create appropriate units for the autostart directory
+(`systemd-xdg-autostart-generator`).
+Desktop Environments can opt-in to using this by starting
+`xdg-desktop-autostart.target`. The systemd generator correctly handles
+`OnlyShowIn=` and `NotShowin=`. It also handles the KDE and GNOME specific
+`X-KDE-autostart-condition=` and `AutostartCondition=` by using desktop
+environment provided binaries in an `ExecCondition=` line.
+
+However, this generator is somewhat limited in what it supports. For example,
+all generated units will have `After=graphical-session.target` set on them,
+it may therefore not be useful to start session services.
+
+Desktop files can be marked to be explicitly excluded from the generator using the line
+`X-systemd-skip=true`. This should be set if an application provides its own
+systemd service file for startup.
 
 ## Startup and shutdown best practices