// 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;
};
