On Thursday 02 October 2003 11:31, Vladimir NOVIKOV wrote:
> First of all, I can't understand this difference between Compose, AltGr
> and dead key modes (that's why I definitively need more documentation).

It's complicated. First, AltGr only exists on the keyboard, not in the 
software. For Linux, there are two totally different keyboard mechanisms: 
console and XFree86's XKB. We're talking just about XKB here. The four sets 
of modifiers we're talking about are the deadkeys (dead_cedilla, et al.), 
Multi_key, ISO_Level3_Shift and Mode_switch.

deadkeys are symbols that don't generate a glyph by themselves, but affect the 
glyph printed when the next key is pressed. If you have a dead_cedilla key, 
you would first press and release the dead_cedilla, then press the 'c' key. 
This will print �. There are lots of different dead_* keys.

Multi_key is also known as Compose. After pressing and releasing the 
Multi_key, sequentially press the two keys that you want combined into one 
glyph. So press and release Multi_key, then press and release ',' then 'c' to 
get �. Pressing 'c' then ',' also works.

ISO_Level3_Shift and Mode_switch have been confused in X's history. In XFree86 
4.3, the new pc/ directory uses ISO_Level3_Shift, which is the "right way." 
You can see the difference in the symbol files.

The ISO_Level3_Shift way looks like this:
key <AE01>  { [ ampersand,          1,  onesuperior,   exclamdown ] };

and the Mode_switch looks like this:
key <AE01> {        [       ampersand,               1      ],
                        [     onesuperior,      exclamdown      ]       };

The problem with using the Mode_switch way like this is that it is very 
difficult to mix two keymaps (say, a US keyboard for Latin script and a 
Russian keyboard for Cyrillic).

> If I have "us_intl" keyboard alone, I normally should have deal keys
> working without any Compose key. If I have one I use Compose + "+a to
> get �, but even without I should be able to get � using only "+a. And
> AltGr mode should be used to have even more characters.

If you want dead keys to type � with the us_intl keymap (which uses the old 
Mode_switch method), you have to generate a dead_diaeresis symbol. In the 
us_intl map, that is the shifted second group on the semi-colon/colon key. Or 
it is also the shifted first group of the apostrophe/doublequote key. So, to 
get a dead_diaeresis, you can either press <Shift>+<apostrophe/doublequote> 
together, or press <Mode_switch>+<semi-colon/colon> together.

Otherwise, using Multi_key, you can get the behavior that you describe for 
Composing.

However, the AltGr key can be mapped to either Mode_switch or Multi_key, so 
the behavior to the user might appear the same.

Frank


_______________________________________________
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n

Reply via email to