GNOME Bugzilla – Bug 144646
The RAlt group switching must be off by default
Last modified: 2004-12-22 21:47:04 UTC
The new Gnome keyboard switcher by default allows to use RAlt to switch to the next group. This is incorrect, as many languages, for example, Latvian, use RAlt as a deadkey to get additional symbols. For example, pressing RAlt+'u' would give 'ū'. With the new keyboard indicator and two layouts (Latvian and Russian for example) pressing RAlt+'u' in Latvian mode, would give 'г' which is clearly incorrect behaivior, because then we cann't get the Latvian symbols.
Correct: RAlt+u -> 'ū' Incorrect: RAlt+u -> 'г'
This is not gnome problem, I'm afraid. This is problem on xfree/xorg server level - probably there is some inconsistency in the xkb configuration database. In xkb/symbols/pc/la, there is a line (in basic layout): include "level3(ralt_switch_multikey)" So it is kind of hardcoded usage of right alt for switch to the level 3. Could you please play with "la" file - exclude this line and try to combine different "Third level choosers" and "Group Shift/Lock behaviour" in the gnome-keyboard-properties. Probably you'll find some combination which would make sense for you?
Created attachment 28858 [details] /etc/X11/xkb/symbols/lv New Latvian keymap
Created attachment 28859 [details] /etc/X11/xkb/symbols/pc/lv new latvian keymap (2nd file)
The current Latvian keyboard map is a bit broken, so we have remade it (not included upstream yet, but widely used in Latvia. I have attached /etc/X11/xkb/symbols/lv and /etc/X11/xkb/symbols/pc/lv. They seam to use 2nd group for Latvian accented chars.
Thanks. So I am closing this bug - it is not about gnome anyway. Your new layouts will be in XKeyboardConfig after review
Oops! There is a problem! pc/lv should include only one (!!!) group. All layouts in pc subdirectory are single-group ones. Could you please fix it?
Maybe you could help us out with constructing a correct keymap? We must have three Latvian keymaps with different dead keys (RAlt+u, '-u, `-u) named standart, aphostrophe and tilde layouts which all are almost equivalent to standart US keyboard, but these chars should be accented: e ē r ŗ u ū i ī o ō a ā s š g ģ k ķ l ļ z ž c č n ņ That is, when you have the bacis layout and press RAlt and e simultainiousely, you get ē. When you have aphostrophe layout, you press ' release it and press e, you also get ē. Same with tilde layout and ` key. We tried to create the layout as correctly as we could and these attaches is the result of this. How should this look like to be correct and to work corretly with the new Gnome keyboard indicator?
OK. I will see what I can do...
Created attachment 28889 [details] /etc/X11/xkb/symbols/pc/lv This file can be combined with 'us' layout (like 'us,lv') and some switching option (like 'group:switch' - for RAlt to switch to the next group)
http://bugs.xfree86.org/show_bug.cgi?id=1415 Have a look at the proposed solution. Is it ok for you?
The solution you propose does NOT seam acceptable to me. There is one major problem in this approach and that is *scalability*. If I only want to write in Latvian, then the added complication of having to load 'us,lv' instead of plain 'lv' might have been bearable, but even the complications occur, as: 1. It is an unneeded complication for the end user administrators 2. When this solution is used, we promptly see that we have *US* keyboard leaded, not a *Latvian* keyboard, as the user expects. This can and *WILL* cause a lot of confusion. It gets even worse if we throw some more languages to the mix - consider a plain simple translator, that has to have a simple way to write in, at least, Latvian, English, Russian, Estonian, Lithuanian and Sweedish. I am not even talking about the people that need to write in 10+ different languages. How does one configure the system then? Why would I explain a user that "in order for 'lv' keymap to work, it must be placed after 'us' in the loading order", just to get him to reply "but you said the same for the 'bar' module too!". That is much too complicated. The current 'Keyboard Indicator' is very unusable compared to the keyboard applet that was present in Gnome 2.4: * support for more then 4 languages is a MUST (in fact, all keyboard layouts must be able to be loaded at the same config!) * the behavior of the keyboard MUST NOT depend on the order of languages in the list * the indication of the keyboard indicator should match the language that is intended to be written in this configuration - that is, if I see US flag, then I can write English, if I can see latvian flag - then, and only then, I can write Latvian. * all languages must be selfcontained and should not be loaded with hacks like us,lv * The 'Layout Options' tab is very unusable, as it is not understandible even for advanced Linux developers ! This must be considered as a HIG and usability issue. * Keymaps make great use of RAlt to get national specific characters, this key must be left for this use and NOT used for something like temporary layout switching (which is now the default, regardless of options in the 'Layout Options') * Flags must get back and they must use proper flags, not something made up (the Latvian flag has all the proportions and colors messed up in the version of GSwichIT with uses flags) I could find more problems with the approach you propose if it would be usable enough to actually be used with any other language then Russian. Please get the Gnome 2.4 keyboard applet back!
First, you can easily return old applet back - just disable XKB extension - and you'll get it. About XKB - the limit of 4 languages it HARDCODED on the protocol level - so GNOME can do NOTHING about it. The idea to introduce dependency on the language order is not MINE. It was implemented in XFree XKB config database LONG LONG ago. All we are doing are just showing it. The idea about the language and flag is not clear to me, I'm afraid. What would stop me from writing in Latvian using ANY layout which has all the letters I need? What is "self-contained" language? If the rules file would say that "lv" layout is combined with "us" and "lv" groups - what would "lv,ru(winkeys)" mean (sure, in most cases russian layout also requires american group)? "us+lv+us+ru(winkeys)"? The whole point of the multiple layouts, introduced in XFree 4.3.0 was to have ONE GROUP per layout - and abitily to combine them in any way. Effectively, you want to revert this GOOD and USEFUL feature back, to prehistoric days of XFree 4.2.0 - when "ru" really meant "us,ru" and NOONE could add third and forth groups without hacking proper layouts. Anyway, this point is OUT of gnome scope. You can raise this issue in xorg maillist (or open the bug in xorg bugzilla). GNOME can do nothing about it. About the "Layout options" you are generally right. Unfortunately, again, GNOME has nothing to do with it. The file xorg.xml is shipped with X server - so GNOME just displays available options. This is also applicable to RAlt issue. About the flags - there was a VERY lengthy and passionate discussion in the desktop-devel-list. You can raise this question again - but I have serious doubts the solution is going to be changed. As a final word, the new applet is used by many people NOT only in Russia. I advise you that making statements based on someone's nationality it is not a good way of solving problems.
I am sorry about the last statement, it is propably in our nationality to blaim russians for anything :). Could you point me to some more information on the topic, like: * how exactly to get the old applet back * the discussions about the limitations of the XKB * how one would give the *user* a latvian flag on the panel, when the user can write in latvian and a russian flag, when he can write in russian, just like the users are used to it in all environments, including, prehistoric Linux? * the discussion about the flag issue What my point is that the new Gnome applet exposes too many details of the underlying OS structure, while it really should hide all the complexity, propably by allowing the user to choose preconfigured keyboard layout *groups* not the layouts in a group.