1partial default 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; 8 virtual_modifiers LevelThree; 9 virtual_modifiers LAlt; 10 virtual_modifiers RAlt; 11 virtual_modifiers RControl; 12 virtual_modifiers LControl; 13 14 type "PC_SUPER_LEVEL2" { 15 modifiers = Mod4; 16 map[None] = Level1; 17 map[Mod4] = Level2; 18 level_name[Level1] = "Base"; 19 level_name[Level2] = "Super"; 20 }; 21 22 type "PC_CONTROL_LEVEL2" { 23 modifiers = Control; 24 map[None] = Level1; 25 map[Control] = Level2; 26 level_name[Level1] = "Base"; 27 level_name[Level2] = "Control"; 28 }; 29 30 type "PC_LCONTROL_LEVEL2" { 31 modifiers = LControl; 32 map[None] = Level1; 33 map[LControl] = Level2; 34 level_name[Level1] = "Base"; 35 level_name[Level2] = "LControl"; 36 }; 37 38 type "PC_RCONTROL_LEVEL2" { 39 modifiers = RControl; 40 map[None] = Level1; 41 map[RControl] = Level2; 42 level_name[Level1] = "Base"; 43 level_name[Level2] = "RControl"; 44 }; 45 46 type "PC_ALT_LEVEL2" { 47 modifiers = Alt; 48 map[None] = Level1; 49 map[Alt] = Level2; 50 level_name[Level1] = "Base"; 51 level_name[Level2] = "Alt"; 52 }; 53 54 type "PC_LALT_LEVEL2" { 55 modifiers = LAlt; 56 map[None] = Level1; 57 map[LAlt] = Level2; 58 level_name[Level1] = "Base"; 59 level_name[Level2] = "LAlt"; 60 }; 61 62 type "PC_RALT_LEVEL2" { 63 modifiers = RAlt; 64 map[None] = Level1; 65 map[RAlt] = Level2; 66 level_name[Level1] = "Base"; 67 level_name[Level2] = "RAlt"; 68 }; 69 70 type "CTRL+ALT" { 71 modifiers = Control+Alt+Shift+LevelThree; 72 map[None] = Level1; 73 map[Shift] = Level2; 74 map[LevelThree] = Level3; 75 map[Shift+LevelThree] = Level4; 76 map[Control+Alt] = Level5; 77 preserve[Shift] = Shift; 78 preserve[Shift+LevelThree] = Shift; 79 level_name[Level1] = "Base"; 80 level_name[Level2] = "Shift"; 81 level_name[Level3] = "Alt Base"; 82 level_name[Level4] = "Shift Alt"; 83 level_name[Level5] = "Ctrl+Alt"; 84 }; 85 86 // Local eight level. 87 // Needed when you want part of your layout eight-level but cannot use 88 // LevelFive as modifier, as this will take over the right Ctrl by default 89 // for the whole layout and is too invasive for the average four-level user. 90 // Needed to fix bug #9529. 91 // FIXME: Should really use RControl but it seems not to be enabled by 92 // default and touching this requires a lot of testing. 93 type "LOCAL_EIGHT_LEVEL" { 94 modifiers = Shift+Lock+LevelThree+Control; 95 96 map[None] = Level1; 97 map[Lock+Shift] = Level1; 98 map[Shift] = Level2; 99 map[Lock] = Level2; 100 101 map[LevelThree] = Level3; 102 map[Lock+Shift+LevelThree] = Level3; 103 map[Shift+LevelThree] = Level4; 104 map[Lock+LevelThree] = Level4; 105 106 map[Control] = Level5; 107 map[Lock+Shift+Control] = Level5; 108 map[Shift+Control] = Level6; 109 map[Lock+Control] = Level6; 110 111 map[LevelThree+Control] = Level7; 112 map[Lock+Shift+LevelThree+Control] = Level7; 113 map[Shift+LevelThree+Control] = Level8; 114 map[Lock+LevelThree+Control] = Level8; 115 116 level_name[Level1] = "Base"; 117 level_name[Level2] = "Shift"; 118 level_name[Level3] = "Level3"; 119 level_name[Level4] = "Shift Level3"; 120 level_name[Level5] = "Ctrl"; 121 level_name[Level6] = "Shift Ctrl"; 122 level_name[Level7] = "Level3 Ctrl"; 123 level_name[Level8] = "Shift Level3 Ctrl"; 124 }; 125 126}; 127