After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 729211 - Input method list should include current system default layout as the pre-selected default
Input method list should include current system default layout as the pre-sel...
Status: RESOLVED FIXED
Product: gnome-initial-setup
Classification: Applications
Component: general
3.12.x
Other Linux
: Normal major
: ---
Assigned To: GNOME Initial Setup maintainer(s)
GNOME Initial Setup maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2014-04-29 18:11 UTC by Adam Williamson
Modified: 2014-10-30 18:05 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Adam Williamson 2014-04-29 18:11:26 UTC
Kinda related to https://bugzilla.gnome.org/show_bug.cgi?id=729208 . In the 'new' g-i-s, 3.12.0, it seems like nothing ensures that the current systemwide default keyboard layout (i.e. whatever the user just chose as their layout during OS installation, in the most common case of g-i-s) is even included in the list of possible keyboard layouts offered to the user after they select a language and location. I just did a stock install of Fedora Rawhide picking Canada as my location, which gives US English as the keyboard layout, but on encountering g-i-s, the list of layouts it offered me didn't even *include* US English, never mind pre-select it as the default. This seems wrong.
Comment 1 Adam Williamson 2014-05-02 18:34:52 UTC
So it seems that *if the system default layout happens to be in the short list*, then g-i-s will pre-select it for you. The bit that's missing is the code to ensure the system default layout is in the short list.

You can see this easily by comparing what happens if you pick United States as your location vs. what happens if you pick Canada, with the system default keyboard layout set to US English.
Comment 2 Adam Williamson 2014-08-28 23:07:20 UTC
A dev mentioned at the test day today that this is actually a 'design issue':

<rtcm> "we don't pay much attention to previous configuration, since this tool is intended for first-time setup"
<rtcm> ^ that's from the commit that introduced this design

I have to say, I, er...politely disagree with this logic.

The environment in which g-i-s is running is very unlikely to have been delivered by a stork, or be the product of immaculate conception. There are a multitude of possible scenarios for how the systemwide layout setting that g-i-s inherits came to be. I thought through quite a lot of them, and could think of basically *none* where the setting is likely to be actively wrong, and really quite a lot where it's likely to be useful.

I suspect the most common case for GNOME deployment is *still* 'user interactively installs Linux distribution on user's own computer', in which case the systemwide setting is the one the user actively chose (or the default the user accepted) during installation and thus there's a very high chance that said user (and any other users of the same computer) wants to use that layout.

Even if we go into other cases - let's say Dell preloads a few million systems with GNOME 3. Dell does per-region customization, they're big kids. In such a theoretical situation, you'd probably find that when the user hits g-i-s, the systemwide input method configuration will have been pre-set by the OEM to something appropriate for the user's large-scale geographical region. Again, quite likely to be a setting the user wants to use.

Similarly if a company preloads a bunch of systems for its staff. Most companies are still restricted to a particular geographical region, and they'll likely pre-configure an appropriate input method for that region. If the company's multinational, there's a high chance their deployment methodology is sophisticated enough that they'll pre-configure the system appropriately for the region it's being deployed in. Once again, the pre-existing config is quite likely to be one the user might want.

Heck, even if you take the 'all defaults' case - if no-one makes an effort to cause things to be otherwise, the systemwide setting g-i-s inherits is almost certainly going to be en(us). Is it ever a bad idea to offer en(us) as one of ~6 possible keyboard layouts? I'd argue no. It's a very common choice worldwide.

We had to work really quite hard to come up with a scenario where the systemwide default would almost certainly not be a useful choice:

<sgallagh> adamw: The most hostile scenario I can come up with is "Laptop sold to company and delivered to company headquarters, then mailed out to out of country user"
<sgallagh> But most sane companies would do reconfiguration before sending it back out
<sgallagh> adamw: Yeah, I was basically making a straw-man argument to point out that the only case I could come up with for which the current behavior kind of makes sense is a ludicrous one.

as sgallagh said, if that's the most plausible 'bad' scenario we could come up with, it doesn't seem worth worrying about.

Finally consider this. The two possible scenarios here are:

1. g-i-s shows the six heuristically determined 'most likely' layouts
2. g-i-s shows the five heuristically determined 'most likely' layouts, plus the systemwide default

The top five 'heuristically-determined' layouts are going to be there either way. So, think it through: for the current design to make sense, we have to believe that overall, users are more likely to want the layout our heuristics think is the *sixth most likely choice* than they are to want the current systemwide-configured layout. That seems to me very, very, very unlikely to be true.
Comment 3 Adam Williamson 2014-10-27 16:49:19 UTC
I'd like to refine this suggestion a bit based on another problem pointed out in a downstream report:

https://bugzilla.redhat.com/show_bug.cgi?id=1151519

sometimes the system config has multiple layouts, so just ensuring the current active system layout is selected in the chooser wouldn't necessarily be enough. If the user configured multiple layouts in the installer, they probably want multiple layouts in their desktop user session.

So the suggestion I had in the bug is that g-i-s should always detect and show the system-wide config - including the case where that's a config with multiple layouts, or otherwise complex - and let the user simply accept that as their desktop session config.
Comment 4 Rui Matos 2014-10-30 18:05:30 UTC
commit a6b0132193d1c4031035d4d412285a488dfaf2a6
Author: Rui Matos <tiagomatos@gmail.com>
Date:   Thu Oct 30 17:58:16 2014 +0100

    keyboard: Preserve system keyboard layouts
    
    If there are keyboard layouts already configured system wide we should
    keep and import them as user input sources.
    
    For simplicity we still only allow the user to choose one input source
    and in that case we'll use it as the default, i.e. the first.
    
    The first system layout, if it exists, is pre-selected in the chooser.