[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ISO_Shift_Level vs. Mode_switch *RETRACTION*



On Saturday 23 August 2003 8:20, Frank Murphy wrote:
> On Saturday 23 August 2003 7:56, Simon Vallet wrote:
> > Mode_switch switches modes (as the name tells) : to get the "extended"
> > symbol you have to look in the second "group", i.e. (this time the good
> > one ;-) :
>
> I think that your explaination is exactly backwards.
>
> key <AE00> { [1, 2, 3, 4], [5, 6, 7, 8 ]};
>
> To get 3 in this example, you have to press and hold Mode_swtich while
> pressing 1. To get 5, you would have to press and hold ISO_Level3_Shift
> while pressing 1.

So, my explaination of the difference between Mode_swtich and ISO_Level3_Shift 
was totally backwards. Simon Vallet's was totally right. I'll explain it the 
right way.

Given this key map:

   key <AE00> { [1, 2, 3, 4], [5, 6, 7, 8 ]};

To get 3, press and hold ISO_Level_Shift+1. To get 5, press and hold 
Mode_switch+1.

The problem is that many of the keymaps actually do this wrong. Looking at the 
macintosh/de keymap, we see these kinds of mappings:

   key <AE01> { [ 1, exclam ], [ exclamdown, at ] };

So, this mapping requires that Mode_shift is defined in order to get to the 
exclamdown symbol. Most of the 4.2 keymaps work like this. However, it is not 
the way XKB was designed to work. The change in group is supposed to allow 
the keyboard to be mapped to a totally different keyboard (like Cyrillic), 
not get to the third level of this keyboard.

In XFree86 4.3, the new keymaps are all done the right way, with 
ISO_Shift_Level.

So this means that I'll have to make an option to use Mode_shift for people 
who need to use the broken keymaps.

Frank



Reply to: