[this page was written by Nick Demou in an attempt to clarify the situation regarding mozilla bug 69230]
[updated 2007-01-01 - see note [4]]
As is usual a lot of confusion regarding what the problem is and what the solution is comes from words and expressions that mean different things to different people or within different context. So...THERE IS NO POINT IN READING ANYTHING MORE BEFORE YOU GRASP THE INTRODUCTION THAT GIVES SOME CLEAR DEFINITIONS (they will usually appear in italics):
You can buy keyboards in different physical layouts. Here are two examples:
Here is the physical layout of a US QWERTY keyboard
and here is the physical layout of a Belgian AZERTY keyboard
note that A,Z,Q,W and some symbols are in completely different places. Also some symbols are unique to its physical layout and some symbols are missing.
And now here is another example. It's the physical layout of a US Dvorak keyboard
It seems obvious by looking at the images that what the physical layout defines is what character we get by typing the Nth key of the Kth row. Things are going to get a little bit more complex however: Have you noted that some physical layouts have all their keys in the same positions as other physical layouts? An example is US QWERTY and US Dvorak (a counter-example is US QWERTY vs. Belgian AZERTY). Check them now and you'll notice that whatever physical key you see in US QWERTY there is another key in the same position at US Dvorak (although most likely it will have another symbol on it).
Now be carefull: if you are well trained in typing on QWERTY keyboards and you plug a US Dvorak keyboard in your PC but configure it to expect a US QWERTY then you can start typing without looking at the keyboard gaming your mind to believe that you have a US QWERTY keyboard and you'll be happy to see the expected words to appear. If you look at what you're typing you'll of course be awfully confused.
What do all this mean: well the fact is that your software always needs a a table to translate keys to characters i.e. it needs to be aware of a logical layout - translating keys to characters is not done by the keyboard hardware. So in every PC there is a default logical layout. If this logical layout is chosen to much the physical layout of the keyboard you'll have the pleasure of pressing the key with an 'A' on it and really geting an 'A' or an 'a' at the screen. So be careful:
when we speak of Dvorak or QWERTY we may be referring either to the physical layout or to the logical layout.
Now let's go for the tough stuff: there are many people who speak and type some other language besides English and don't want to have two different keyboards or a keyboard with 205 keys (that is almost all of them). So they will buy a keyboard with some physical layout and they will plug it to a PC that has a default logical layout that will produce English characters. However since they need to be able to also type in their non-English language they will have configured an alternative logical layout. When they hit a key-combination they switch to the alternative logical layout. When at that alternative logical layout keys that used to produce English characters now produce non-English ones (Greek, Russian, Hebrew etc)
For example let's think of a Greek user that owns a keyboard with US QWERTY physical layout . When he switches his keyboard to Greek logical layout his keyboard generates the following characters:

instead of these characters:
![]()
you can see that the same physical key that in the US logical keyboard layout was producing the character "Latin P" now produces the character "Greek pi"(Π).
Oh! BTW don't get fooled: a greek "A" (an alpha) is a different character than a Latin "A". You can see the difference in the lower case form of the letter which is "α" rather than "a".Finally I also have to remind you of something I'm sure you know: the character we get from a physical key also depends on two other factors:
So in CapsLock-state "off" we get a "p" whereas in CapsLock-state "on" we get a "P"
Also in a Greek keyboard, key "E" by itself gives as an "E" whereas [right Alt]+E gives as the euro sign
To sum up the introduction:
We buy a keyboard with a specific physical keyboard layout, we then plug it to our PC and we configure at least one logical layout (that usually matches our physical layout). But we can also configure additional logical layouts (also usually matching our physical layout) which contain characters in other languages. If we have more than one logical layout we can switch between them and switch between two CapsLock states and also press the standard keys along with some modifier keys in order for as to be able to produce different characters[1] by pressing the same physical-key. That way we don't need to have a keyboard with 205 keys to write English, Hebrew and Greek
This bug has to do with 3 related problems. I will present them one by one to make things clear.
When you hit Ctrl+[the key that has latin C printed on it] you should always get the effect of "copy to clipboard". Currently this happens only if your CapsLock key is off.
The CapsLock issue troubles some people (although a lot of computer users don't use the CapsLock at all and so they don't care). The good thing is that everybody agrees on this:
Everybody wants their shortcuts to work no mater what the state of the CapsLock is.
Hitting Ctrl-C for example should do a copy to clipboard no matter what the state of CapsLock is.
Let's suppose that you have a keyboard with US QUERTY physical-layout. When you hit Ctrl+[the key that has Latin C printed on it] you should always get the effect of "copy to clipboard". Currently this happens only if your logical keyboard layout is either English or some other that contains 'Latin C'[3].
This issue troubles all users that leave in most non-English speaking countries. When. for example, you change to Greek or Russian or Columbian or ... logical layout which has no C character in its character-set (and there are plenty of them) there is no way to copy using a shortcut. So users from all this countries have no way to use most of (if not all) the popular shortcuts while typing text in their native language. Users facing this problem want:
[modifier] + [a physical key]
to behave the same independently of the logical keyboard
layout.
And they have a very good reason for that. It's impossible to train your mind to do different finger motions when in different logical keyboard layout. And they are required to switch logical layouts often if not constantly (when one writes a Greek text regarding computers for example many words like KDE, GNOME, Linux, GPL etc,etc must be typed in English)
Let's suppose that I have a PC shared between a qwerty trained user and a Dvorak trained user so we've setup both US QUERTY and US Dvorak logical layout and switch between them as soon as we sit in front of the PC (note by looking at the images that the two layouts use the same physical layout so this IS possible). Both users were trained to use Ctrl-C to copy but C for the qwerty user is in different physical position than C for the Dvorak user. Users facing this problem want:
[modifier] + [the key that produces character
X]
to behave the same no mater what physical key one needs to
press to get character X[4]
And they have a good reason: It's very hard to train your mind to do different finger motions when in front of a different PC. Even when you manage to it takes some time full of frustration[2]
Yes they seem to but I think you can make both happy.
Here is the algorithm:
a) if user hits [modifier] plus [a key that produces a character in the Latin alphabet] then proceed as you normally do (Ctrl + C for example will activate a copy to clipboard)
b) whereas if user hits [modifier] plus [a key that produces a character not in the Latin alphabet] then
b1) check if this combination is registered to activate some action (most likely it's not but it's good to be proactive) - if it is go ahead and trigger it
b2) but if it's not, check what is the Latin character that would have been produced if the keyboard was in the English logical layout and act just as you would if [modifier] plus [that Latin character] was pressed
And Of course don't forget that everybody wants their shortcuts to work no mater what the state of the CapsLock is.
____________________________________
Notes:
[2] I'll have however to admit that working in a logical layout completely unrelated to the physical layout of the keyboard is kind of ... bizarre.
[3] I suspect things that this really is the case but I'm not entirely positive
[4] I heard that some people using Dvorak keyboards really want to activate the "copy to clipboard" with the same physical key that the QWERTY people use (that is the 4th key in the 4th row, which is C for QWERTY, Q for Dvorak). However after investing some hours researching the subject it is evident that currently on Windows, Linux and the Mac this is the exception to the rule. Also such behaviour can easily be provided by a special locale. So it seems good to ignore this view in the context of this bug