diff --git a/common/flatpak-context.c b/common/flatpak-context.c
index a4eb41f5..f95a431d 100644
--- a/common/flatpak-context.c
+++ b/common/flatpak-context.c
@@ -826,6 +826,22 @@ flatpak_context_parse_filesystem (const char *filesystem_and_mode,
return TRUE;
}
+ if (strcmp (filesystem, "~") == 0)
+ {
+ if (filesystem_out != NULL)
+ *filesystem_out = g_strdup ("home");
+
+ return TRUE;
+ }
+
+ if (g_str_has_prefix (filesystem, "home/"))
+ {
+ if (filesystem_out != NULL)
+ *filesystem_out = g_strconcat ("~/", filesystem + 5, NULL);
+
+ return TRUE;
+ }
+
g_set_error (error, G_OPTION_ERROR, G_OPTION_ERROR_FAILED,
_("Unknown filesystem location %s, valid locations are: host, host-os, host-etc, home, xdg-*[/…], ~/dir, /dir"), filesystem);
return FALSE;
diff --git a/doc/flatpak-metadata.xml b/doc/flatpak-metadata.xml
index 325a381a..ce62f872 100644
--- a/doc/flatpak-metadata.xml
+++ b/doc/flatpak-metadata.xml
@@ -210,6 +210,14 @@
Available since 0.3.
+
+ Alias for ~/path
+ Available since 1.8.7.
+ For better compatibility with older
+ Flatpak versions, prefer to write this
+ as ~/path.
+
+
The entire host file system, except for
@@ -382,6 +390,15 @@
directory. Available since 0.3.
+
+
+ The same as .
+ Available since 1.8.7.
+ For better compatibility with older
+ Flatpak versions, prefer to write this
+ as .
+
+
One of the above followed by
diff --git a/tests/test-exports.c b/tests/test-exports.c
index 55a06c09..02618c75 100644
--- a/tests/test-exports.c
+++ b/tests/test-exports.c
@@ -298,6 +298,12 @@ static const Filesystem filesystems[] =
{ "xdg-config/././///.///././.", FLATPAK_FILESYSTEM_MODE_READ_WRITE, "xdg-config" },
{ "xdg-config/////", FLATPAK_FILESYSTEM_MODE_READ_WRITE, "xdg-config" },
{ "xdg-run/dbus", FLATPAK_FILESYSTEM_MODE_READ_WRITE },
+ { "~", FLATPAK_FILESYSTEM_MODE_READ_WRITE, "home" },
+ { "~/.", FLATPAK_FILESYSTEM_MODE_READ_WRITE, "home" },
+ { "~/", FLATPAK_FILESYSTEM_MODE_READ_WRITE, "home" },
+ { "~///././//", FLATPAK_FILESYSTEM_MODE_READ_WRITE, "home" },
+ { "home/", FLATPAK_FILESYSTEM_MODE_READ_WRITE, "home" },
+ { "home/Projects", FLATPAK_FILESYSTEM_MODE_READ_WRITE, "~/Projects" },
};
static void