GNOME Bugzilla – Bug 555261
Can't select default keyboard layout
Last modified: 2009-02-01 15:07:09 UTC
the bug has been described on https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/279129 "Binary package hint: gnome-control-center Steps to reproduce in Intrepid: 1. Open System->Preferences->Keyboard. 2. Go to Layouts tab. 3. Check if you have more than one "Selected layouts". If not, add another layout pressing the '+' button. If "Separate layout for each window" checkbox is unchecked, you can't select the default layout clicking on a radiobutton in the Default column of "Selected layouts". Therefore, "Separate layout for each window" must be checked if you want to select a default layout. "Default" radiobutton only works when I check "Separate layout for each window" checkbox in the same "Layouts" tab of "Keyboard Preferences". That checkbox is enabled by default in Hardy but disabled in Intrepid, AFAIK."
The "default" radio only makes sense when "separate layout for each window" is enabled. That layout becomes active when new window is created - it is "assigned" to that new window. If layout state is global, there is not point to assigned layout to window, so no need to setup "default" layout. So, first user should chose whether he wants separate per-window layout or now. Then (if yes) - he can choose which layout is going to be the default one.
This is so *very* non obvious. First, the "separate layout" option is not clear to me even after you explained it. Second, if you have a list of multiple layouts with a "default" column behind it you are bound to think you have to check one of them (instead of just select one? is that how you chose the layout?)
I did not explain "separate layout". But I can do, if you like. That feature means that every main window "remembers" current layout. So if I use, say, Russian in Abiword, then switch to Gnumeric, use English layout, then switch back to Abiword - my current layout becomes Russian again, automatically. That's when this checkbox is "on". When it is "off", the layout is "global" - means it only changes when user explicitly change it. So when I switch from Excel back to Abiword, my layout does not change, it is still English (so if I want to keep typing in Russian, I have to switch layout using some shortcut or smth). Is that clear enough now? I do not quite distinguish the difference between "have to check one of them" or "can check one of them" in the context. You have ability to check one of them, when "separate layout" is checked. Otherwise you can do nothing with those radios. Anyway, I am open to suggestions. How would you modify the interface to it more clear, with all the information I gave you now?
I did not explain "separate layout". But I can do, if you like. That feature means that every main window "remembers" current layout. So if I use, say, Russian in Abiword, then switch to Gnumeric, use English layout, then switch back to Abiword - my current layout becomes Russian again, automatically. That's when this checkbox is "on". When it is "off", the layout is "global" - means it only changes when user explicitly change it. So when I switch from Excel back to Abiword, my layout does not change, it is still English (so if I want to keep typing in Russian, I have to switch layout using some shortcut or smth). Is that clear enough now? I do not quite distinguish the difference between "have to check one of them" or "can check one of them" in the context. You have ability to check one of them, when "separate layout" is checked. Otherwise you can do nothing with those radios. Anyway, I am open to suggestions. How would you modify the interface to make it more clear, with all the information I gave you now?
oops, double-posting. my apologies.
Sorry, I just found this bug by accident... I was not even aware of this feature :) But, wven now it's not 100% clear to me... Say, I set layout A, start app X, close it. Now I set layout B, start app Y. If I now start X again it will have layout A while X always has B? What is the "default" for, or, why does it not just fall back to the last "selected" layout by default?
Well, the way it is supposed to work (if not, it is a bug). 1. You set layout A (your currently active window is W, let's suppose) 2. You start app X. Once new main window appears, the "default" layout should be immediately set by GNOME (if "default" layout is chosen of course - otherwise layout A remains active). 3. You close X. The window W is active again - so, its "saved" layout is automatically activated. So, layout A must be active again. 4. You set layout B - ok, for window W the current layout is B. 5. You start X again. GNOME does not remember layouts between window/process instances. So, see #2. "Default" means "the layout which is automatically selected when any new main window is created". Is that clear enough?
But, if I did not check the "separate layout for each window", how can I select the default keyboard layout then? This is really not intuitive.
Sorry, I forgot to mention that it DID work as I expected in the program version which is used by Ubuntu 8.04. It does no longer in the Ubuntu 8.10 program.
If you do not have "separate layout per window", the default layout does not make sense (I explained why - see above). Well, it may be not intuitive - but that's the way it works. I do not understand why it worked your way in ubuntu 8.04 - because it should not have. That logic was there for ages. May be, some local ubuntu patches or smth.
But this is simply not true: If I have more than one keyboard layout and use it as a global setting, I still need the possibility to define which one should be the GLOBAL DEFAULT - that is, the one which is active right after logging in - don't you think?
It is true just because it describes the way it works;). The thing you're talking about does not need special setting - the very first layout is selected after logging in. So just put your default layout first.
Ok, so two comments then: 1) how do I know this? In the help document this is not explained as far as I can see. 2) Changing the global default is terribly user-unfriendly; there are no "move up/move down" buttons for the layout (and I would not expect them, anyway, since I can see this shiny "default" column there...), so the user has to first delete and then rearrange all his layouts again. I think the first goal in software design should be that the user can intuitively understand how he can tailor the software to his own needs, or am I misunderstanding something? I hope you are not striving to hit "MS" level of "user friendliness"...
So, if it is not a bug, then it should be a request for enhancement...
1) You can file a bug report against GDP. That's fair point. 2) Actually, at some point before there were "up/down" buttons. Now, you can remove/add only, you're right. Since it was rare that people considered "startup" group important, and the interface looked cluttered, I've removed those buttons. I am open to suggestions on how to make the interface friendlier (it does not mean I promise to implement everything). But we have to provide flexibility without too much clutter on the screen (useful for just a few users). For example, how could I give user a hint that first layout is going to be chosen at startup?
ad 2): I didn't mean I would like to have the "up/down" buttons - just that this *could be* a possible solution. You are right that they are cluttering the UI, and even then without a hint it would not be clear that the first item in the list is the "global [startup] default". I really think it would be a good and intuitive solution to enable the "default" buttons in every situation and give them a (slightly adopted) meaning: -) if "separate layout for each window" is checked, the "default layout" should work exactly as you explained above -) if "separate layout for each window" is NOT checked, the "default layout" should just be the layout which is active when the user logs in - which would be exactly the thing I would like to have :-) That means, the components of the UI would not even change, only a small portion of how it works... :-)
Ghm. I would say this is not more intuitive that what we have now... Slightly more usable, true (people do not have to add/remove layouts to change the first one).
I see, you are not easily to convince :-) First of all, it was not me who filed the bug at ubuntu launchpad (see above). But I stumbled over it, too. So, to summarize: -) In Ubuntu 8.04 it *is* possible to change the "global default" keyboard layout with these radiobuttons (and it works, although you say it shouldn't) -) In Ubuntu 8.10 these buttons are disabled and there is 1) no description in the help and 2) no clearly visible way without consulting any other documentation on how you can set the default (this is what in my opinion would mean "intuitive") This is clearly a lack of functionality. If one has the possibility to switch between keyboard layouts, one should also be able to set the standard layout in an EASY way. If you think my proposed solution (once again, this was already working in 8.04, so it is not my own idea to do it this way) is not intuitive either, I would be pleased to read your own ideas to improve the usability...
Sebastien, could you please comment - did Ubuntu have some patch for that in 8.04?
there was no patch in gnome-control-center for that, dunno about xorg but could have been a bug in the 2.22 version?
Well, of course it could be a bug - even though I never got any reports about that. What I am 99.99% sure is there is no special code which looks at "default layout" at gnome startup and sets current group correspondingly. What actually makes me suspicious is that having 1 set of radio buttons for two different functions ("default layout for newly created window" and "default layout for the session startup") looks like violation of HIG. But I may be wrong at that point... Sebastien, what's your opinion? Do you think it is intuitive enough? Or just explaining fact that "first group is activated at the session startup" (in docs) would be good enough?
the list should perhaps not be active if you can't change the default?
You need to be able to select items for removal. So the list must be active for that.
Actually, reordering is also possible with DnD. Try.
Ok, that's nice. Perhaps a paragraph in the documentation would be sufficient, explaining that the first layout is the session default and you can change the order of the items with DnD? (Although this is not completely satisfying: The problem with DnD is that you cannot see which components have this possibility - therefore some if not most HIGs propose that it should never be the only way to handle user interaction...)
HIG is right, in general. Just in that particular case adding "up"/"down" buttons would be not justified by relatively few users who're affected by that issue. That's IMHO. Anyway, let's ask GDP to put some more words into the docs.
I still have a problem with this "Default" column in the list. Things to consider: -) The label "Default" suggests (to me, at least) a somewhat global meaning. -) The column becomes disabled if the "separate layout" button is not pressed. But the difference between enabled and disabled rendering is almost invisible (you can see it really good only if the checked radio item is NOT the selected line). -) The natural working flow for the user is from top to bottom. But the "separate layout" check box changes things above it... So, a "perfect" [ok, nothing is ever perfect] solution could be: 1. Move the "separate layout" check box above the list of layouts. 2. Hide/display the "default" column, depending on the setting of the check box instead of disabling/enabling it. I know, this would mean some programming work to do.
Sergey, when you're done with this, please move the bug over to gnome-user-docs. Nothing will ever happen on the docs component.
Gerard: moving the checkbox on top is not a problem, I'll try that. While hiding/displaying is not pleasant looking I'm afraid. I will try it anyway. Jens: roger that!
Well, I've committed the proposed change. Please try from CVS. I am not sure it is better that way though. I prefer the old way - it looks more logical IMHO... Anyway, it is up to documenters now.
Sergey, sorry but I did not get your version to compile. I am not a gnome developer and thus not used to the development process. I managed to checkout the current version, installed gnome-devel from the ubuntu repositories and ran autogen.sh, but after some warnings it fails with the following message: checking for LIBSLAB... configure: error: Package requirements (gtk+-2.0 >= 2.13.1 glib-2.0 >= 2.17.4 gio-2.0 gconf-2.0 libglade-2.0 >= 2.0.0 gnome-desktop-2.0 >= 2.25.1 gnome-desktop-2.0 librsvg-2.0 libgnome-menu pango eel-2.0) were not met: Requested 'gnome-desktop-2.0 >= 2.25.1' but version of gnome-desktop-2.0 is 2.24.1 I do not want to fill this thread with contents which have nothing to do with its original title, so if you could give me a hint on how I can get this thing to build, it would be great (I do not have much time to just try things...).
Since you are not going to build entire g-c-c (and commit to Subversion), try to edit configure.in, look for gnome-desktop version and "downgrade" it. Then, build capplets/common and capplets/keyboard. May be, some other internal g-c-c dependencies will have to be resolved (built) - like libbackround/libslab/libsounds/libwindow-settings). Usually I am doing something of that kind...
Thanks a lot for your help! I now managed to compile and run it. Well, to me it DOES look better now - with the "default" column being visible only when the "separate layout" is checked, it is immediately clear to the user that these two settings have a dependency and, even more, the "default" does not make sense without the "separate layout". So, for me, this better shows your very first intention. Maybe others should have a look at it, too?
I agree with Gerhard Radatz. Even if it isn't a bug, I feel it like a bug. I was searching on the internet for 30 minutes trying to find the solution for selecting that radio button which marks the default keyboard layout (or at least it should mark even if it's a global layout and not the default layout in new applications). In the new version of the software, please do something to make this more intuitive. In my opinion even if is not used a separate layout for each window, that radio button should work. Marking the button meaning that you selected the layout witch is used by default when booting the computer.
Well, now that Gerhard is happy with optional display of the "default" column, I guess I will close this one. If you're still unhappy with that (please test devel GNOME), feel free to reopen and propose better solution.