File gnome-settings-daemon-initial-keyboard.patch of Package gnome-settings-daemon.391
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
@@ -1232,7 +1232,7 @@ set_devicepresence_handler (GsdKeyboardM
}
static void
-get_sources_from_xkb_config (GsdKeyboardManager *manager)
+get_sources_from_xkb_config (GsdKeyboardManager *manager, gboolean running_under_gdm)
{
GsdKeyboardManagerPrivate *priv = manager->priv;
GVariantBuilder builder;
@@ -1283,7 +1283,7 @@ get_sources_from_xkb_config (GsdKeyboard
g_free (id);
}
- if (!have_default_layout)
+ 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));
@@ -1443,7 +1443,7 @@ maybe_create_initial_settings (GsdKeyboa
/* clean the settings and get them from the "system" */
g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ss)"));
g_settings_set_value (settings, KEY_INPUT_SOURCES, g_variant_builder_end (&builder));
- get_sources_from_xkb_config (manager);
+ get_sources_from_xkb_config (manager, TRUE);
g_settings_set_strv (settings, KEY_KEYBOARD_OPTIONS, NULL);
get_options_from_xkb_config (manager);
@@ -1455,7 +1455,7 @@ maybe_create_initial_settings (GsdKeyboa
/* if we still don't have anything do some educated guesses */
sources = g_settings_get_value (settings, KEY_INPUT_SOURCES);
if (g_variant_n_children (sources) < 1)
- get_sources_from_xkb_config (manager);
+ get_sources_from_xkb_config (manager, FALSE);
g_variant_unref (sources);
options = g_settings_get_strv (settings, KEY_KEYBOARD_OPTIONS);