Level 5 switches yield NoSymbol without a Level 5 lock simultaneously enabled
Submitted by Socialdarwinist
Assigned to Xorg Project Team
Link to original bug (#102189)
Description
Set a keyboard layout that uses more than four levels. This is a generic Cyrillic layout I have created to mitigate the four-layout limitation in XKB: https://gist.github.com/Socialdarwinist/82c9db494f706bfeb3ea5918b5a1ca69
If you enable a level 5 switch, no matter if it is already present, like for example level5(lsgt_switch), or created like in my pan-Cyrillic keyboard layout for the Caps Lock key, no matter if in the desktop environment or in the xorg.conf, you will nonetheless be unable to type in anywhere any of the characters only reachable via the level 5 modifier – unless you also enable any of the locks present in the symbols/level5 file, for example level5(rwin_switch_lock).
It is notable that xev correctly reports the key set as a level 5 switch as ISO_LEVEL5_SHIFT, even though using it yields NoSymbol.
It is interesting that the level 5 switches are also not presented in the rules/base file (respectively rules/base.o_s.part in the git repository) unlike the level 5 locks and all the level 3 modifiers. It suggests that somebody has already noticed that the level 5 switches do not work but has absconded from reporting it and leading it to a fix.
I have reproduced the bug by setting the keyboard layout desktop-environment-internal, i.e. via libgnomekbd in Cinnamon and libmatekbd in MATE, as well as in an xorg.conf, therewith even in twm. I have reproduced the bug likewise on different machines, one Antergos Linux on a 64-bit Intel machine, the other pure Arch Linux on a 64-bit AMD machine.
I advance the question if I should still publish the keyboard layout even with this bug present if I include level5(rwin_switch_lock) as a workaround. I think yes. Nobody fixes anything anyway in the XKB, correct?