Comment 10 for bug 49358

Revision history for this message
Paul Anderson (p-j-anderson) wrote :

I found this bug report while trying to get ISO_Level5_Shift working for a Berber/Tuareg keyboard i'm working on, and I think it is the same problem as I have (on Intrepid).

I have 'right control' set to generate ISO_Level5_Shift, just like the Canadian multilingual all-in-one layout.
With xev I can see the correct keysym 0xfe11 ISO_Level5_Shift. But pressing right control with keys does nothing (no level 5 shift), even though I have defined keysyms for all 8 levels.
I had the same problem on Hardy - the only difference was that the xkb files all had numbers (like 0xfe11) instead of keysym names.

For the French oss layout there are 2 bugs, 198759 and 208224, where people have found that right CTRL doesn't seem to do anything when it's mapped to ISO_Level5_Shift. Their workaround was a hack: to implement a new LOCAL_EIGHT_LEVEL type. This might be the same problem too.

To access my extra set of letters, I too could use a hack for the moment, based on the FOUR_LEVEL_PLUS_LOCK used by the German keyboard for capital sharp s.
But it would be cleaner to fix the bug and use a level 5 switch key instead of Caps Lock.

Possible cause:

ISO_Level3_Shift works perfectly so I configured right control to generate this instead of ISO_Level5_Shift. It worked fine just like AltGr.
So then I edited compat/level5 to switch or lock the LevelFive modifier according to an incoming ISO_Level3_Shift keysym. It worked fine - the compat apparatus saw the ISO_Level3_Shift keysym, made the correct interpretations, and the level 5 shift happened correctly for the Canadian layout.

Only ISO_Level3_Shift or 0xfe03 is seen by the compat part of xkb, not ISO_Level3_Lock/Latch, ISO_Level5_*, or several 0x type keysyms (including old F33 just in case) that I tried putting into compat/level5 to be 'interpret'ed.

Summary:

Some bug seems to be preventing keysyms that look fine on xev from being interpreted at compat/level5. Levels 5 and up can therefore never be accessed. Maybe there is a filter for control-like keysyms like meta, level3_shift etc, and Level5 was never included in it, or maybe a flag is missing on the keysym.

Can anyone else replicate my findings?