// Interpretations needed to implement the numeric keypad // as an overlay instead of a modifier. partial hidden xkb_compatibility "overlay" { include "keypad(overlay1)" }; partial hidden xkb_compatibility "overlay1" { virtual_modifiers NumLock,AltGr; interpret.repeat= False; setMods.clearLocks= True; latchMods.clearLocks= True; latchMods.latchToLock= True; interpret Num_Lock { virtualModifier= NumLock; action= LockControls(ctrls=overlay1); }; interpret Num_Lock+Any { virtualModifier= NumLock; action= LockControls(ctrls=overlay1); }; indicator.allowExplicit= True; indicator.driveskbd= True; replace indicator "Num Lock" { whichModState= Locked; modifiers= NumLock; controls= Overlay1; }; indicator.allowExplicit= True; }; partial hidden xkb_compatibility "overlay2" { virtual_modifiers NumLock,AltGr; interpret.repeat= False; setMods.clearLocks= True; latchMods.clearLocks= True; latchMods.latchToLock= True; interpret Num_Lock { virtualModifier= NumLock; action= LockControls(ctrls=overlay2); }; interpret Num_Lock+Any { virtualModifier= NumLock; action= LockControls(ctrls=overlay1); }; indicator.allowExplicit= True; indicator.driveskbd= True; replace indicator "Num Lock" { whichModState= Locked; modifiers= NumLock; controls= Overlay2; }; indicator.allowExplicit= True; };