Le jeudi 20 janvier 2011 à 01:34 +0100, Cyril Brulebois a écrit : > Cyril Brulebois <k...@debian.org> (19/01/2011): > > New protocol: > > * Restart gdm3. > > * Make sure the options are set appropriately. > > * Pick a user. > > Tada, you lost already.
> | if (layout == NULL) { > | config->layouts = g_strdupv (initial_config->layouts); > | config->variants = g_strdupv (initial_config->variants); > | config->options = g_strdupv (initial_config->options); > > Here you'd get options. > > | config->variants = g_new0 (char *, 2); > | config->layouts[0][p - config->layouts[0]] = 0; > | config->variants[0] = g_strdup (p + 1); > | } > > Here you're fucked. Thanks a lot for the analysis, you found the place where things actually happen. It turns out that the XKB configuration is passed between the greeter to the daemon as a string, which contains "layout\tvariant". This is the string that is stored in your .dmrc as the Layout key. This might be fixable for the first login by exchanging more complete information, but anyway starting from the second login, gdm will use the string stored in the .dmrc file, so this would still fail. Fixing the bug requires at least one of the following changes (and ideally, both): * changing the logic so that the XKB settings are not stored if the default keymap was not changed; * changing the specification for the Layout key in the .dmrc file. The first change is complex and implies code that, touching XKB, is scary by definition. The second one requires synchronisation with all other DMs which could make use of that key. I’ve forwarded the bug upstream. I hope they can find a solution, but this will definitely not be for squeeze, even in a point release. Cheers, -- .''`. Josselin Mouette : :' : `. `' “If you behave this way because you are blackmailed by someone, `- […] I will see what I can do for you.” -- Jörg Schilling
signature.asc
Description: This is a digitally signed message part