1default partial xkb_types "default" { 2 3 // Some types that are necessary 4 // for a full implementation of 5 // a PC-compatible keyboard. 6 7 virtual_modifiers Alt, LevelThree; 8 9 type "PC_SUPER_LEVEL2" { 10 modifiers = Mod4; 11 map[None] = Level1; 12 map[Mod4] = Level2; 13 level_name[Level1] = "Base"; 14 level_name[Level2] = "Super"; 15 }; 16 17 type "PC_CONTROL_LEVEL2" { 18 modifiers = Control; 19 map[None] = Level1; 20 map[Control] = Level2; 21 level_name[Level1] = "Base"; 22 level_name[Level2] = "Control"; 23 }; 24 25 type "PC_ALT_LEVEL2" { 26 modifiers = Alt; 27 map[None] = Level1; 28 map[Alt] = Level2; 29 level_name[Level1] = "Base"; 30 level_name[Level2] = "Alt"; 31 }; 32 33 type "CTRL+ALT" { 34 modifiers = Shift + LevelThree + Control + Alt; 35 map[None] = Level1; 36 map[Shift] = Level2; 37 map[LevelThree] = Level3; 38 map[Shift+LevelThree] = Level4; 39 map[Control+Alt] = Level5; 40 preserve[Shift] = Shift; 41 preserve[Shift+LevelThree] = Shift; 42 level_name[Level1] = "Base"; 43 level_name[Level2] = "Shift"; 44 level_name[Level3] = "Alt Base"; 45 level_name[Level4] = "Shift Alt"; 46 level_name[Level5] = "Ctrl+Alt"; 47 }; 48 49 // Local eight level. 50 // Needed when you want part of your layout eight-level but cannot use 51 // LevelFive as modifier, as this will take over the right Ctrl by default 52 // for the whole layout and is too invasive for the average four-level user. 53 // Needed to fix bug #9529. 54 // FIXME: Should really use RControl but it seems not to be enabled by 55 // default and touching this requires a lot of testing. 56 type "LOCAL_EIGHT_LEVEL" { 57 modifiers = Shift + Lock + LevelThree + Control; 58 59 map[None] = Level1; 60 map[Lock+Shift] = Level1; 61 map[Shift] = Level2; 62 map[Lock] = Level2; 63 64 map[LevelThree] = Level3; 65 map[Lock+Shift+LevelThree] = Level3; 66 map[Shift+LevelThree] = Level4; 67 map[Lock+LevelThree] = Level4; 68 69 map[Control] = Level5; 70 map[Lock+Shift+Control] = Level5; 71 map[Shift+Control] = Level6; 72 map[Lock+Control] = Level6; 73 74 map[LevelThree+Control] = Level7; 75 map[Lock+Shift+LevelThree+Control] = Level7; 76 map[Shift+LevelThree+Control] = Level8; 77 map[Lock+LevelThree+Control] = Level8; 78 79 level_name[Level1] = "Base"; 80 level_name[Level2] = "Shift"; 81 level_name[Level3] = "Level3"; 82 level_name[Level4] = "Shift Level3"; 83 level_name[Level5] = "Ctrl"; 84 level_name[Level6] = "Shift Ctrl"; 85 level_name[Level7] = "Level3 Ctrl"; 86 level_name[Level8] = "Shift Level3 Ctrl"; 87 }; 88}; 89