docs: Change prefix for desktop applications to app-

We need both a slice name and a prefix for application units. For
consistency we tried to use the same name and ended up standardising on
"apps.slice" and and "apps-" prefix for the units.

However, "app-" would be a more natural prefix for applications. And it
is no problem to simply also name the slice "app.slice" for consistency
rather than keeping the current "apps.slice".
This commit is contained in:
Benjamin Berg 2020-04-30 14:21:44 +02:00
parent 484f4e5b2d
commit 60ca8f22b8
1 changed files with 9 additions and 9 deletions

View File

@ -28,11 +28,11 @@ Currently nothing like this is supported or even planned.
[`systemd.special(7)`](https://www.freedesktop.org/software/systemd/man/systemd.special.html) [`systemd.special(7)`](https://www.freedesktop.org/software/systemd/man/systemd.special.html)
defines the `graphical-session.target` and `graphical-session-pre.target` to defines the `graphical-session.target` and `graphical-session-pre.target` to
allow cross-desktop integration. Furthermore, systemd defines the three base allow cross-desktop integration. Furthermore, systemd defines the three base
slices `background`, `apps` and `session`. slices `background`, `app` and `session`.
All units should be placed into one of these slices depending on their purposes: All units should be placed into one of these slices depending on their purposes:
* `session.slice`: Contains only processes essential to run the user's graphical session * `session.slice`: Contains only processes essential to run the user's graphical session
* `apps.slice`: Contains all normal applications that the user is running * `app.slice`: Contains all normal applications that the user is running
* `background.slice`: Useful for low-priority background tasks * `background.slice`: Useful for low-priority background tasks
The purpose of this grouping is to assign different priorities to the The purpose of this grouping is to assign different priorities to the
@ -42,7 +42,7 @@ preferentially killing background tasks in out-of-memory situations
or assigning different memory/CPU/IO priorities to ensure that the session or assigning different memory/CPU/IO priorities to ensure that the session
runs smoothly under load. runs smoothly under load.
TODO: Will there be a default to place units into e.g. `apps.slice` by default TODO: Will there be a default to place units into e.g. `app.slice` by default
rather than the root slice? rather than the root slice?
## XDG standardization for applications ## XDG standardization for applications
@ -50,9 +50,9 @@ rather than the root slice?
To ensure cross-desktop compatibility and encourage sharing of good practices, To ensure cross-desktop compatibility and encourage sharing of good practices,
desktop environments should adhere to the following conventions: desktop environments should adhere to the following conventions:
* Application units should follow the scheme `apps-<launcher>-<ApplicationID>-<RANDOM>.service`, * Application units should follow the scheme `app-<launcher>-<ApplicationID>-<RANDOM>.service`,
e.g. `apps-gnome-org.gnome.Evince-12345.service`, e.g. `app-gnome-org.gnome.Evince-12345.service`,
`apps-flatpak-org.telegram.desktop-12345.service` or `apps-KDE-org.kde.okular-12345.service`. `app-flatpak-org.telegram.desktop-12345.service` or `app-KDE-org.kde.okular-12345.service`.
* Using `.service` units instead of `.scope` units, i.e. allowing systemd to * Using `.service` units instead of `.scope` units, i.e. allowing systemd to
start the process on behalf of the caller, start the process on behalf of the caller,
instead of the caller starting the process and letting systemd know about it, instead of the caller starting the process and letting systemd know about it,
@ -62,13 +62,13 @@ desktop environments should adhere to the following conventions:
contain a `-` character. contain a `-` character.
This has the following advantages: This has the following advantages:
* Using the `apps-<launcher>-` prefix means that the unit defaults can be * Using the `app-<launcher>-` prefix means that the unit defaults can be
adjusted using desktop environment specific drop-in files. adjusted using desktop environment specific drop-in files.
* The application ID can be retrieved by stripping the prefix and postfix. * The application ID can be retrieved by stripping the prefix and postfix.
This in turn should map to the corresponding `.desktop` file when available This in turn should map to the corresponding `.desktop` file when available
TODO: Define the name of slices that should be used. TODO: Define the name of slices that should be used.
This could be `apps-<launcher>-<ApplicationID>-<RANDOM>.slice`. This could be `app-<launcher>-<ApplicationID>-<RANDOM>.slice`.
TODO: Does it really make sense to insert the `<launcher>`? In GNOME I am TODO: Does it really make sense to insert the `<launcher>`? In GNOME I am
currently using a drop-in to configure `BindTo=graphical-session.target`, currently using a drop-in to configure `BindTo=graphical-session.target`,
@ -78,7 +78,7 @@ global default for all (graphical) applications.
* Should application lifetime be bound to the session? * Should application lifetime be bound to the session?
* May the user have applications that do not belong to the graphical session (e.g. launched from SSH)? * May the user have applications that do not belong to the graphical session (e.g. launched from SSH)?
* Could we maybe add a default `apps-.service.d` drop-in configuration? * Could we maybe add a default `app-.service.d` drop-in configuration?
## XDG autostart integration ## XDG autostart integration