xkb_keymap { xkb_keycodes { minimum = 8; maximum = 255; = 24; = 25; = 26; = 27; = 28; = 29; = 30; = 31; = 32;

= 33; = 38; = 39; = 40; = 41; = 42; = 43; = 52; = 53; = 54; = 55; = 56; = 57; = 58; indicator 1 = "xxx"; indicator 2 = "yyy"; }; xkb_types { virtual_modifiers M1,M2; type "t1" { modifiers= none; }; type "t2" { modifiers= Shift; map[Shift]= 2; }; }; xkb_compatibility { virtual_modifiers M1,M2; interpret.useModMapMods= AnyLevel; interpret.repeat= False; interpret q+AnyOfOrNone(all) { action= NoAction(); }; interpret w+AnyOfOrNone(all) { repeat= True; }; indicator "yyy" { modifiers= Shift; }; }; xkb_symbols { key { [ q ] }; key { repeat= No, symbols[1]= [ NoSymbol ], actions[1]= [ SetMods(modifiers=none) ] }; key { type= "t1", symbols[1]= [ e ] }; key { symbols[1]= [ NoSymbol ], symbols[2]= [ u ] }; key { [ i ] }; key { virtualMods= M1 }; key { repeat= No }; key { type= "t2", symbols[1]= [ NoSymbol, NoSymbol ] }; key { type= "t2", symbols[1]= [ NoSymbol, NoSymbol ] }; key { type[1]= "t1", type[2]= "t2", symbols[1]= [ NoSymbol ], symbols[2]= [ NoSymbol, NoSymbol ] }; key { virtualMods= M1 }; key { virtualMods= M2 }; key { virtualMods= none }; key { type= "t2", virtualMods= none, symbols[1]= [ NoSymbol, NoSymbol ] }; key { type= "t1", virtualMods= none, symbols[1]= [ NoSymbol ] }; key { type[1]= "t1", type[2]= "t2", virtualMods= none, symbols[1]= [ NoSymbol ], symbols[2]= [ NoSymbol, NoSymbol ] }; modifier_map Shift { }; modifier_map Lock { }; modifier_map Control { }; }; };