> level3(ralt_switch) definiert die AltGr-Taste neu, deshalb lässt sich ein
> Lock (in dem Fall der Mod4-Lock) nicht ohne weiteres realisieren.
Man könnte einen entsprechenden type (im XKB-Sinn) definieren. Damit
kann man beliebiges Lock-Verhalten implementieren. Ich habe schon damit
herumexperimentiert, allerdings habe ich dabei noch mehr geändert als
für das vorliegende Problem nötig wäre. Zur Illustration will ich
trotzdem mal zeigen. Der type für die 30 Buchstabentasten ist:
type "NEO_7A" {
modifiers= Shift+Lock+Mod2+Mod3+Mod4;
// Mod4 und Mod2 (Mod4-Lock) werden exklusiv-oder verknüpft
// Lock vertauscht E1 und E2
map[Shift ]= Level2;
map[ Lock ]= Level2;
map[Shift+Lock ]= Level1;
map[ Mod2 ]= Level4;
map[ Lock+Mod2 ]= Level4;
map[Shift+ Mod2 ]= Level7;
map[Shift+Lock+Mod2 ]= Level7;
map[ Mod3 ]= Level3;
map[ Lock+ Mod3 ]= Level3;
map[Shift+ Mod3 ]= Level5;
map[Shift+Lock+ Mod3 ]= Level5;
map[ Mod2+Mod3 ]= Level6;
map[ Lock+Mod2+Mod3 ]= Level6;
map[Shift+ Mod2+Mod3 ]= Level1;
map[Shift+Lock+Mod2+Mod3 ]= Level2;
map[ Mod4]= Level4;
map[ Lock+ Mod4]= Level4;
map[Shift+ Mod4]= Level7;
map[Shift+Lock+ Mod4]= Level7;
map[ Mod2+ Mod4]= Level1;
map[ Lock+Mod2+ Mod4]= Level2;
map[Shift+ Mod2+ Mod4]= Level2;
map[Shift+Lock+Mod2+ Mod4]= Level1;
map[ Mod3+Mod4]= Level6;
map[ Lock+ Mod3+Mod4]= Level6;
map[Shift+ Mod3+Mod4]= Level1;
map[Shift+Lock+ Mod3+Mod4]= Level2;
map[ Mod2+Mod3+Mod4]= Level3;
map[ Lock+Mod2+Mod3+Mod4]= Level3;
map[Shift+ Mod2+Mod3+Mod4]= Level5;
map[Shift+Lock+Mod2+Mod3+Mod4]= Level5;
level_name[Level1]= "E1";
level_name[Level2]= "E2";
level_name[Level3]= "E3";
level_name[Level4]= "E4";
level_name[Level5]= "E5";
level_name[Level6]= "E6";
level_name[Level7]= "Shift+E4";
};
Hier entsprechen Neos Mod3, Mod4, Caps-Lock, und Mod4-Lock die realen
XKB-Modifikatoren Mod3, Mod4, Lock, und Mod2, und die Neo-Ebenen sind
wie die XKB-Level nummeriert.
Der Nachteil Neo-spezifischer types ist, dass man ein File mehr ändern
muss.
Man könnte auch probieren das Ubuntu 8.x-Problem zu lösen, indem man die
XKB-Modifikatoren direkt per actions statt via keysyms und
XKB-compartibility setzt, siehe meinen Kommentar zu Ticket #74. Ich
benutze kein Ubuntu, kann es daher nicht ausprobieren.
Andreas