diff --git a/libgimpbase/gimpenv.c b/libgimpbase/gimpenv.c index 656b8f7ab3..fc01c176cc 100644 --- a/libgimpbase/gimpenv.c +++ b/libgimpbase/gimpenv.c @@ -346,11 +346,29 @@ gimp_directory (void) #else /* UNIX */ - /* g_get_user_config_dir () always returns a path as a non-null - * and non-empty string - */ - gimp_dir = g_build_filename (g_get_user_config_dir (), - GIMPDIR, GIMP_USER_VERSION, NULL); + if (g_file_test ("/.flatpak-info", G_FILE_TEST_EXISTS)) + { /* Linux flatpak version */ + gchar *host_xdg_config_home = g_getenv ("HOST_XDG_CONFIG_HOME"); + + if (host_xdg_config_home == NULL) + gimp_dir = g_build_filename (g_get_home_dir (), + ".config", + GIMPDIR, GIMP_USER_VERSION, + NULL); + else + gimp_dir = g_build_filename (host_xdg_config_home, + GIMPDIR, GIMP_USER_VERSION, + NULL); + } + + if (gimp_dir == NULL) + { + /* g_get_user_config_dir () always returns a path as a non-null + * and non-empty string + */ + gimp_dir = g_build_filename (g_get_user_config_dir (), + GIMPDIR, GIMP_USER_VERSION, NULL); + } #endif /* PLATFORM_OSX */ }