default partial xkb_types "default" {

    
    

    virtual_modifiers  Alt, LevelThree, LevelFive, NumLock;

    type "FOUR_LEVEL" {
	modifiers = Shift + LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "AltGr";
	level_name[Level4] = "Shift AltGr";
    };

    type "FOUR_LEVEL_ALPHABETIC" {
	modifiers = Shift + Lock + LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[Lock] = Level2;
	map[Shift+Lock] = Level1;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock+LevelThree] = Level4;
	map[Shift+Lock+LevelThree] = Level3;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "AltGr";
	level_name[Level4] = "Shift AltGr";
    };

    type "FOUR_LEVEL_SEMIALPHABETIC" {
	modifiers = Shift + Lock + LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[Lock] = Level2;
	map[Shift+Lock] = Level1;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock+LevelThree] = Level3;
	map[Shift+Lock+LevelThree] = Level4;
	preserve[Lock+LevelThree] = Lock;
	preserve[Shift+Lock+LevelThree] = Lock;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "AltGr";
	level_name[Level4] = "Shift AltGr";
    };

    type "FOUR_LEVEL_KEYPAD" {
	modifiers = Shift + NumLock + LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[NumLock] = Level2;
	map[Shift+NumLock] = Level1;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[NumLock+LevelThree] = Level4;
	map[Shift+NumLock+LevelThree] = Level3;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift/Numlock";
	level_name[Level3] = "AltGr";
	level_name[Level4] = "Shift/Numlock AltGr";
    };

    
    
    
    type "FOUR_LEVEL_MIXED_KEYPAD" {
	modifiers = Shift + NumLock + LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[NumLock] = Level2;
	map[Shift+NumLock] = Level1;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[NumLock+LevelThree] = Level3;
	map[Shift+NumLock+LevelThree] = Level4;
	level_name[Level1] = "Base";
	level_name[Level2] = "Number";
	level_name[Level3] = "AltGr";
	level_name[Level4] = "Shift AltGr";
    };

    
    
    
    
    type "FOUR_LEVEL_LOCKABLE_LEVEL2" {
	modifiers = Shift + LevelThree + LevelFive;
	map[None] = Level1;
	map[Shift] = Level2;
	map[LevelFive] = Level2;
	map[Shift+LevelFive] = Level1;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[LevelFive+LevelThree] = Level3;
	map[Shift+LevelFive+LevelThree] = Level4;
	level_name[Level1] = "Base";
	level_name[Level2] = "Digit";
	level_name[Level3] = "AltGr";
	level_name[Level4] = "Shift AltGr";
    };

    
    type "FOUR_LEVEL_X" {
	modifiers = Shift + LevelThree + Control + Alt;
	map[None] = Level1;
	map[Shift] = Level1;
	map[LevelThree] = Level2;
	map[Shift+LevelThree] = Level3;
	map[Control+Alt] = Level4;
	level_name[Level1] = "Base";
	level_name[Level2] = "AltGr";
	level_name[Level3] = "Shift AltGr";
	level_name[Level4] = "Ctrl+Alt";
    };

    
    
    
    
    type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
	modifiers = Shift + Lock + LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[Lock] = Level4;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock+LevelThree] = Level3;
	map[Shift+Lock+LevelThree] = Level3;
	preserve[Lock] = Lock;
	preserve[Lock+LevelThree] = Lock;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "AltGr";
	level_name[Level4] = "Caps / Shift AltGr";
    };

    
    
    
    type "FOUR_LEVEL_PLUS_LOCK" {
	modifiers = Shift + Lock + LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock] = Level5;
	map[Shift+Lock] = Level2;
	map[Lock+LevelThree] = Level3;
	map[Shift+Lock+LevelThree] = Level4;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "AltGr";
	level_name[Level4] = "Shift AltGr";
	level_name[Level5] = "Lock";
    };
};
