1diff --git a/src/backend/plugins/config-gnome/config-gnome.c b/src/backend/plugins/config-gnome/config-gnome.c
2index 820827b..338e269 100644
3--- a/src/backend/plugins/config-gnome/config-gnome.c
4+++ b/src/backend/plugins/config-gnome/config-gnome.c
5@@ -85,11 +85,60 @@ px_config_gnome_init (PxConfigGnome *self)
6 if (!self->available)
7 return;
8
9- self->proxy_settings = g_settings_new ("org.gnome.system.proxy");
10- self->http_proxy_settings = g_settings_new ("org.gnome.system.proxy.http");
11- self->https_proxy_settings = g_settings_new ("org.gnome.system.proxy.https");
12- self->ftp_proxy_settings = g_settings_new ("org.gnome.system.proxy.ftp");
13- self->socks_proxy_settings = g_settings_new ("org.gnome.system.proxy.socks");
14+ {
15+ g_autoptr(GSettingsSchemaSource) schema_source;
16+ g_autoptr(GSettingsSchema) schema;
17+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
18+ g_settings_schema_source_get_default(),
19+ TRUE, NULL);
20+ schema = g_settings_schema_source_lookup(schema_source,
21+ "org.gnome.system.proxy", FALSE);
22+ self->proxy_settings = g_settings_new_full(schema, NULL, NULL);
23+ }
24+ {
25+ g_autoptr(GSettingsSchemaSource) schema_source;
26+ g_autoptr(GSettingsSchema) schema;
27+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
28+ g_settings_schema_source_get_default(),
29+ TRUE, NULL);
30+ schema = g_settings_schema_source_lookup(schema_source,
31+ "org.gnome.system.proxy.http",
32+ FALSE);
33+ self->http_proxy_settings = g_settings_new_full(schema, NULL, NULL);
34+ }
35+ {
36+ g_autoptr(GSettingsSchemaSource) schema_source;
37+ g_autoptr(GSettingsSchema) schema;
38+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
39+ g_settings_schema_source_get_default(),
40+ TRUE, NULL);
41+ schema = g_settings_schema_source_lookup(schema_source,
42+ "org.gnome.system.proxy.https",
43+ FALSE);
44+ self->https_proxy_settings = g_settings_new_full(schema, NULL, NULL);
45+ }
46+ {
47+ g_autoptr(GSettingsSchemaSource) schema_source;
48+ g_autoptr(GSettingsSchema) schema;
49+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
50+ g_settings_schema_source_get_default(),
51+ TRUE, NULL);
52+ schema = g_settings_schema_source_lookup(schema_source,
53+ "org.gnome.system.proxy.ftp",
54+ FALSE);
55+ self->ftp_proxy_settings = g_settings_new_full(schema, NULL, NULL);
56+ }
57+ {
58+ g_autoptr(GSettingsSchemaSource) schema_source;
59+ g_autoptr(GSettingsSchema) schema;
60+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
61+ g_settings_schema_source_get_default(),
62+ TRUE, NULL);
63+ schema = g_settings_schema_source_lookup(schema_source,
64+ "org.gnome.system.proxy.socks",
65+ FALSE);
66+ self->socks_proxy_settings = g_settings_new_full(schema, NULL, NULL);
67+ }
68 }
69
70 static void
71diff --git a/tests/config-gnome-test.c b/tests/config-gnome-test.c
72index f80914a..118d429 100644
73--- a/tests/config-gnome-test.c
74+++ b/tests/config-gnome-test.c
75@@ -60,11 +60,60 @@ static void
76 fixture_setup (Fixture *self,
77 gconstpointer data)
78 {
79- self->proxy_settings = g_settings_new ("org.gnome.system.proxy");
80- self->http_proxy_settings = g_settings_new ("org.gnome.system.proxy.http");
81- self->https_proxy_settings = g_settings_new ("org.gnome.system.proxy.https");
82- self->ftp_proxy_settings = g_settings_new ("org.gnome.system.proxy.ftp");
83- self->socks_proxy_settings = g_settings_new ("org.gnome.system.proxy.socks");
84+ {
85+ g_autoptr(GSettingsSchemaSource) schema_source;
86+ g_autoptr(GSettingsSchema) schema;
87+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
88+ g_settings_schema_source_get_default(),
89+ TRUE, NULL);
90+ schema = g_settings_schema_source_lookup(schema_source,
91+ "org.gnome.system.proxy", FALSE);
92+ self->proxy_settings = g_settings_new_full(schema, NULL, NULL);
93+ }
94+ {
95+ g_autoptr(GSettingsSchemaSource) schema_source;
96+ g_autoptr(GSettingsSchema) schema;
97+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
98+ g_settings_schema_source_get_default(),
99+ TRUE, NULL);
100+ schema = g_settings_schema_source_lookup(schema_source,
101+ "org.gnome.system.proxy.http",
102+ FALSE);
103+ self->http_proxy_settings = g_settings_new_full(schema, NULL, NULL);
104+ }
105+ {
106+ g_autoptr(GSettingsSchemaSource) schema_source;
107+ g_autoptr(GSettingsSchema) schema;
108+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
109+ g_settings_schema_source_get_default(),
110+ TRUE, NULL);
111+ schema = g_settings_schema_source_lookup(schema_source,
112+ "org.gnome.system.proxy.https",
113+ FALSE);
114+ self->https_proxy_settings = g_settings_new_full(schema, NULL, NULL);
115+ }
116+ {
117+ g_autoptr(GSettingsSchemaSource) schema_source;
118+ g_autoptr(GSettingsSchema) schema;
119+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
120+ g_settings_schema_source_get_default(),
121+ TRUE, NULL);
122+ schema = g_settings_schema_source_lookup(schema_source,
123+ "org.gnome.system.proxy.ftp",
124+ FALSE);
125+ self->ftp_proxy_settings = g_settings_new_full(schema, NULL, NULL);
126+ }
127+ {
128+ g_autoptr(GSettingsSchemaSource) schema_source;
129+ g_autoptr(GSettingsSchema) schema;
130+ schema_source = g_settings_schema_source_new_from_directory("@gds@",
131+ g_settings_schema_source_get_default(),
132+ TRUE, NULL);
133+ schema = g_settings_schema_source_lookup(schema_source,
134+ "org.gnome.system.proxy.socks",
135+ FALSE);
136+ self->socks_proxy_settings = g_settings_new_full(schema, NULL, NULL);
137+ }
138 }
139
140 static void