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