// 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 {
	virtualModifier= LevelFive;
	action= LatchMods(modifiers=LevelFive);
    };

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

    interpret ISO_Level5_Lock+Any {
	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 real modifier in order to
	// create arbitrary level-behaviour, which would not be possible with the
	// virtual modifier.
	// See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK
	// See also: symbols/level5(lock)
    virtual_modifiers NumLock;
    
    interpret ISO_Level5_Lock {
        action = LockMods(modifiers = NumLock);
    };
};
