Grummel, der Trac mag mich grad nicht, also hier:
Ich habe das Problem identifiziert. Ganz schön mühsam, durch den
Dschungel des Xkb-Protokolls zu schleichen.
In compat/level5 steht:
{{{
interpret ISO_Level5_Shift+Any {
useModMapMods= level1;
virtualModifier= LevelFive;
action= SetMods(modifiers=LevelFive);
};
}}}
Das bedeutet, dass den Tasten, die ein ISO_Level5_Shift als Keysym haben
''und'' denen irgendein realer Modifier zugeordnet ist, der virtuelle
Modifier LevelFive zugeordnet wird. Dadurch wird also LevelFive mit
diesem realen Modifier verbunden. Wegen ''useModMapMods=level1'' geht
das aber ''nur'' bei den Tasten, bei denen ISO_Level5_Shift ''im ersten
Level der ersten Gruppe'' steht.
Die Strategie des Neo-Treibers ist nun folgende: LevelFive muss mit dem
realen Mod3 assoziiert werden (oder jedenfalls mit irgendeinem
''freien'' Mod). Das tritt genau dann ein, wenn es irgendeine Taste
gibt, die sowohl LevelFive als auch Mod3 zugeordnet bekommt. Dazu nimmt
Neo die „virtuelle“ Taste MDSW, die nicht auf der Tastatur vorkommt.
Sie wird Mod3 zugeordnet und bekommt die Keysym ISO_Level5_Shift
verpasst. Dadurch soll sie dann in compat/level5 LevelFive zugeordnet
werden, und damit wäre LevelFive=Mod3.
Nur, dass im vorliegenden Szenario (Neo nicht als erste Gruppe) MDSW
wegen der Einschränkung ''useModMapMods= level1'' niemals was mit
LevelFive zu tun bekommt. Deswegen wird LevelFive keinem realen Modifier
mehr zugeordnet und wird deswegen nie berücksichtigt. Die Ebenen 4 und
6-8 sind damit nicht verfügbar.
Weil die AltGr-Taste im ersten de(basic)-Layout noch Mod5 zugewiesen
kriegt, das mit LevelThree assoziiert ist, erzeugt der rechte Neo-Mod4
die Zeichen der dritten Ebene.
Man beachte, dass Modifier-Zuordnungen für alle Gruppen gleichzeitig
gelten.
Abhilfe:
Die einfache Variante ist, in symbols/level5 für MDSW zu schreiben:
{{{
key MDSW { virtualmodifiers = LevelFive };
modifier_map Mod3 { MDSW };
}}}
Virtuelle Modifier kann man nämlich notfalls auch direkt in
xkb_symbols-Abschnitten zuweisen, da muss man nicht zwingend die
compatibility bemühen. Einziger Nachteil ist, dass man dieses Verhalten
dann nicht mehr über die Xmodmap ändern kann.
Da muss man dann auch gar nicht die Keysym ISO_Level5_Shift zuweisen,
das ist überflüssig.
Hab's aber noch nicht ausprobiert, ich hoffe mal, das klappt.
Alternativ könnte man vielleicht Mod3 direkt auf die level5-Tasten
mappen, aber da gibt es sicherlich schon einen Grund, warum das lieber
gelassen wird (z.B., dass das dann auch für Qwertz-Zweitlayout gilt und
man Mod3 da vielleicht lieber anderweitig verwendet).
Gruß, Peter