1default xkb_compatibility "xtest" { 2 3 // Minimal set of symbol interpretations to provide 4 // reasonable behavior for testing. 5 // The X Test Suite assumes that it can set any modifier 6 // by simulating a KeyPress and clear it by simulating a 7 // KeyRelease. Because of the way that XKB implements 8 // locking/latching modifiers, this approach fails in 9 // some cases (typically the Lock or NumLock modifiers). 10 // These symbol interpretations make all modifier keys 11 // just set the corresponding modifier so that xtest 12 // will see the behavior it expects. 13 14 virtual_modifiers NumLock,AltGr; 15 16 interpret.repeat= False; 17 setMods.clearLocks= True; 18 latchMods.clearLocks= True; 19 latchMods.latchToLock= False; 20 21 interpret Shift_Lock+AnyOf(Shift+Lock) { 22 action= SetMods(modifiers=Shift); 23 }; 24 25 interpret Num_Lock+Any { 26 virtualModifier= NumLock; 27 action= SetMods(modifiers=NumLock); 28 }; 29 30 interpret Mode_switch { 31 useModMapMods= level1; 32 virtualModifier= AltGr; 33 action= SetGroup(group=2); 34 }; 35 36 interpret Any + Any { 37 action= SetMods(modifiers=modMapMods); 38 }; 39 40 group 2 = AltGr; 41 group 3 = AltGr; 42 group 4 = AltGr; 43 44 indicator.allowExplicit= False; 45 indicator "Caps Lock" { 46 modifiers= Lock; 47 }; 48 indicator "Num Lock" { 49 modifiers= NumLock; 50 }; 51 indicator "Shift Lock" { 52 whichModState= Locked; 53 modifiers= Shift; 54 }; 55 indicator.allowExplicit= True; 56}; 57