File gsettings-do-not-store-autodetected-keyboard-settings.patch of Package gnome-settings-daemon.1498

Index: gnome-settings-daemon-3.10.2/plugins/keyboard/gsd-keyboard-manager.c
===================================================================
--- gnome-settings-daemon-3.10.2.orig/plugins/keyboard/gsd-keyboard-manager.c
+++ gnome-settings-daemon-3.10.2/plugins/keyboard/gsd-keyboard-manager.c
@@ -1288,14 +1288,18 @@ get_sources_from_xkb_config (GsdKeyboard
         if (!have_default_layout && running_under_gdm)
                 g_variant_builder_add (&builder, "(ss)", INPUT_SOURCE_TYPE_XKB, DEFAULT_LAYOUT);
 
-        g_settings_set_value (priv->input_sources_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
+        if (running_under_gdm){
+                // only set dconf in gdm, do NOT set doncf for normal sessions as it would prevent
+                // system-wide configuration taking effect, see bnc#931527
+                g_settings_set_value (priv->input_sources_settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
+        }
 
         g_strfreev (layouts);
         g_strfreev (variants);
 }
 
 static void
-get_options_from_xkb_config (GsdKeyboardManager *manager)
+get_options_from_xkb_config (GsdKeyboardManager *manager, gboolean running_under_gdm)
 {
         GsdKeyboardManagerPrivate *priv = manager->priv;
         GVariant *v;
@@ -1312,7 +1316,10 @@ get_options_from_xkb_config (GsdKeyboard
         if (!options)
                 return;
 
-        g_settings_set_strv (priv->input_sources_settings, KEY_KEYBOARD_OPTIONS, (const gchar * const*) options);
+        if (running_under_gdm) {
+                // only set dconf in gdm, see bnc#931527
+                g_settings_set_strv (priv->input_sources_settings, KEY_KEYBOARD_OPTIONS, (const gchar * const*) options);
+        }
 
         g_strfreev (options);
 }
@@ -1448,7 +1455,7 @@ maybe_create_initial_settings (GsdKeyboa
                 get_sources_from_xkb_config (manager, TRUE);
 
                 g_settings_set_strv (settings, KEY_KEYBOARD_OPTIONS, NULL);
-                get_options_from_xkb_config (manager);
+                get_options_from_xkb_config (manager, TRUE);
                 return;
         }
 
@@ -1462,7 +1469,7 @@ maybe_create_initial_settings (GsdKeyboa
 
         options = g_settings_get_strv (settings, KEY_KEYBOARD_OPTIONS);
         if (g_strv_length (options) < 1)
-                get_options_from_xkb_config (manager);
+                get_options_from_xkb_config (manager, FALSE);
         g_strfreev (options);
 }
 
openSUSE Build Service is sponsored by