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; 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 action= SetGroup(group=2); 32 }; 33 34 interpret Any + Any { 35 action= SetMods(modifiers=modMapMods); 36 }; 37 38 group 2 = Mod5; 39 group 3 = Mod5; 40 group 4 = Mod5; 41 42 indicator.allowExplicit= False; 43 indicator "Caps Lock" { 44 modifiers= Lock; 45 }; 46 indicator "Num Lock" { 47 modifiers= NumLock; 48 }; 49 indicator "Shift Lock" { 50 whichModState= Locked; 51 modifiers= Shift; 52 }; 53 indicator.allowExplicit= True; 54}; 55