// Fairly complete set of symbol interpretations
// to provide reasonable default behavior.

default partial xkb_compatibility "default" {

    virtual_modifiers  LevelFive;

    interpret.repeat= False;
    setMods.clearLocks= True;
    latchMods.clearLocks= True;
    latchMods.latchToLock= True;

    interpret ISO_Level5_Shift+Any {
	useModMapMods= level1;
	virtualModifier= LevelFive;
	action= SetMods(modifiers=LevelFive);
    };

    interpret ISO_Level5_Shift {
	action= SetMods(modifiers=LevelFive);
    };

    interpret ISO_Level5_Latch+Any {
	useModMapMods= level1;
	virtualModifier= LevelFive;
	action= LatchMods(modifiers=LevelFive);
    };

    interpret ISO_Level5_Latch {
	action= LatchMods(modifiers=LevelFive);
    };

    interpret ISO_Level5_Lock+Any {
	useModMapMods= level1;
	virtualModifier= LevelFive;
	action= LockMods(modifiers=LevelFive);
    };

    interpret ISO_Level5_Lock {
	action= LockMods(modifiers=LevelFive);
    };
};

partial xkb_compatibility "level5_lock" {
    // This defines a Level5-Lock using the NumLock virtual modifier.
    // See also types/level5 (EIGHT_LEVEL_LEVEL_FIVE_LOCK) and symbols/level5(lock).

    virtual_modifiers  NumLock;

    interpret ISO_Level5_Lock {
	action = LockMods(modifiers = NumLock);
    };
};
