xdg-autostart: Generate autostart services with templated name

The "XDG standardization for applications" specification states that
services should be in the form:

app[-<launcher>]-<ApplicationID>[@<RANDOM>].service or
app[-<launcher>]-<ApplicationID>-<RANDOM>.scope

In this case "autostart" takes the place of [RANDOM] to provide a unique
identifier if the same app is launched elsewhere. As it is a service
that means it should be set as a template not using a hyphen delimiter.
This commit is contained in:
David Edmundson
2021-02-04 16:41:22 +01:00
committed by Lennart Poettering
parent bcea93326b
commit 84c46fb03c
2 changed files with 2 additions and 2 deletions
@@ -13,7 +13,7 @@ static void test_translate_name(void) {
_cleanup_free_ char *t;
assert_se(t = xdg_autostart_service_translate_name("a-b.blub.desktop"));
assert_se(streq(t, "app-a\\x2db.blub-autostart.service"));
assert_se(streq(t, "app-a\\x2db.blub@autostart.service"));
}
static void test_xdg_format_exec_start_one(const char *exec, const char *expected) {
@@ -58,7 +58,7 @@ char *xdg_autostart_service_translate_name(const char *name) {
if (!escaped)
return NULL;
return strjoin("app-", escaped, "-autostart.service");
return strjoin("app-", escaped, "@autostart.service");
}
static int xdg_config_parse_bool(