the German E1 layout uses an unsuitable type for the letter keys
To see what I mean, set the German E1 layout:
setxkbmap de e1 -option
(The trailing -option
clears any existing options so that they won't interfere.)
Make sure CapsLock is off, then type: AltGr+e
, AltGr+w
, e
. The result is €ē
, as expected, since the third level of the W key contains the dead macron. Now engage CapsLock and do the same three keystrokes again. The result now is just an E
, which is unexpected -- I would have expected €Ē
.
The reason for the lacking euro and macron is that the e1 layout in xkeyboard-config uses the type EIGHT_LEVEL_ALPHABETIC for the letter keys, which means that CapsLock affects all eight levels. But none of the keys in the e1 layout have a symbol on the fourth level, with as result that AltGr+key produces nothing when CapsLock is engaged. :/ Surely this cannot be what was intended? Can you confirm or deny this, @gandaro, @getreu, @goldsteal? What does the standard say about the effect of CapsLock for the third level?
I think all the letter keys in the e1 layout should instead use the type EIGHT_LEVEL_SEMIALPHABETIC, so that CapsLock will not have an effect for levels 3+4 but only for levels 1+2 and 5+6. Would you agree with this?
(Changing EIGHT_LEVEL_ALPHABETIC to EIGHT_LEVEL_SEMIALPHABETIC in an existing install of xkeyboard-config would mean that the letter keys would still not do the right thing when holding Shift+LevelFive while CapsLock is engaged, but that was a bug in the EIGHT_LEVEL types that has been fixed in git, in commit 003437ad.)