summaryrefslogtreecommitdiff
path: root/dconf-override.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dconf-override.patch')
-rw-r--r--dconf-override.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/dconf-override.patch b/dconf-override.patch
new file mode 100644
index 0000000..0e95c22
--- /dev/null
+++ b/dconf-override.patch
@@ -0,0 +1,23 @@
+diff --git a/engine/dconf-engine-source-user.c b/engine/dconf-engine-source-user.c
+index 1657875..e4f8786 100644
+--- a/engine/dconf-engine-source-user.c
++++ b/engine/dconf-engine-source-user.c
+@@ -39,11 +39,17 @@ dconf_engine_source_user_open_gvdb (const gchar *name)
+ {
+ GvdbTable *table;
+ gchar *filename;
++ const gchar *override;
++
++ override = g_getenv ("DCONF_USER_CONFIG_DIR");
++ if (override == NULL)
++ filename = g_build_filename (g_get_user_config_dir (), "dconf", name, NULL);
++ else
++ filename = g_build_filename (g_get_home_dir (), override, name, NULL);
+
+ /* This can fail in the normal case of the user not having any
+ * settings. That's OK and it shouldn't be considered as an error.
+ */
+- filename = g_build_filename (g_get_user_config_dir (), "dconf", name, NULL);
+ table = gvdb_table_new (filename, FALSE, NULL);
+ g_free (filename);
+