1partial default xkb_types "default" { 2 3 // Defines a type with an eight-level shift, similar to the three-level 4 // type used for iso9995, but it lets the Shift key behave "normally". 5 6 virtual_modifiers LevelThree,ScrollLock,LevelFive; 7 8 type "EIGHT_LEVEL" { 9 modifiers = Shift+LevelThree+LevelFive; 10 map[None] = Level1; 11 map[Shift] = Level2; 12 map[LevelThree] = Level3; 13 map[Shift+LevelThree] = Level4; 14 map[LevelFive] = Level5; 15 map[Shift+LevelFive] = Level6; 16 map[LevelThree+LevelFive] = Level7; 17 map[Shift+LevelThree+LevelFive] = Level8; 18 level_name[Level1] = "Base"; 19 level_name[Level2] = "Shift"; 20 level_name[Level3] = "Alt Base"; 21 level_name[Level4] = "Shift Alt"; 22 level_name[Level5] = "X"; 23 level_name[Level6] = "X Shift"; 24 level_name[Level7] = "X Alt Base"; 25 level_name[Level8] = "X Shift Alt"; 26 }; 27 28 type "EIGHT_LEVEL_ALPHABETIC" { 29 modifiers = Shift+Lock+LevelThree+LevelFive; 30 map[None] = Level1; 31 map[Shift] = Level2; 32 map[Lock] = Level2; 33 map[LevelThree] = Level3; 34 map[Shift+LevelThree] = Level4; 35 map[Lock+LevelThree] = Level4; 36 map[Lock+Shift+LevelThree] = Level3; 37 38 map[LevelFive] = Level5; 39 map[Shift+LevelFive] = Level6; 40 map[Lock+LevelFive] = Level6; 41 map[LevelThree+LevelFive] = Level7; 42 map[Shift+LevelThree+LevelFive] = Level8; 43 map[Lock+LevelThree+LevelFive] = Level8; 44 map[Lock+Shift+LevelThree+LevelFive] = Level7; 45 46 level_name[Level1] = "Base"; 47 level_name[Level2] = "Shift"; 48 level_name[Level3] = "Alt Base"; 49 level_name[Level4] = "Shift Alt"; 50 level_name[Level5] = "X"; 51 level_name[Level6] = "X Shift"; 52 level_name[Level7] = "X Alt Base"; 53 level_name[Level8] = "X Shift Alt"; 54 }; 55 56// type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { 57// // Level5-Lock is implemented by using NumLock, because a real modifier 58// // is required. 59// 60// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; 61// 62// map[None] = Level1; 63// map[Shift] = Level2; 64// map[LevelThree] = Level3; 65// map[LevelThree+Shift] = Level4; 66// 67// map[LevelFive] = Level5; 68// map[LevelFive+Shift] = Level6; 69// map[LevelFive+LevelThree] = Level7; 70// map[LevelFive+LevelThree+Shift] = Level8; 71// 72// map[NumLock] = Level5; 73// map[NumLock+Shift] = Level6; 74// map[NumLock+LevelThree] = Level7; 75// map[NumLock+LevelThree+Shift] = Level8; 76// 77// map[NumLock+LevelFive] = Level1; 78// map[NumLock+LevelFive+Shift] = Level2; 79// map[NumLock+LevelFive+LevelThree] = Level3; 80// map[NumLock+LevelFive+LevelThree+Shift] = Level4; 81// 82// // Lock has no effect 83// map[Lock] = Level1; 84// map[Lock+Shift] = Level2; 85// map[Lock+LevelThree] = Level3; 86// map[Lock+LevelThree+Shift] = Level4; 87// 88// map[Lock+LevelFive] = Level5; 89// map[Lock+LevelFive+Shift] = Level6; 90// map[Lock+LevelFive+LevelThree] = Level7; 91// map[Lock+LevelFive+LevelThree+Shift] = Level8; 92// 93// map[Lock+NumLock] = Level5; 94// map[Lock+NumLock+Shift] = Level6; 95// map[Lock+NumLock+LevelThree] = Level7; 96// map[Lock+NumLock+LevelThree+Shift] = Level8; 97// 98// map[Lock+NumLock+LevelFive] = Level1; 99// map[Lock+NumLock+LevelFive+Shift] = Level2; 100// map[Lock+NumLock+LevelFive+LevelThree] = Level3; 101// map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; 102// 103// preserve[LevelFive+Shift] = Shift; 104// preserve[NumLock+Shift] = Shift; 105// preserve[Lock+LevelFive+Shift] = Shift; 106// preserve[Lock+NumLock+Shift] = Shift; 107// 108// level_name[Level1] = "Base"; 109// level_name[Level2] = "Shift"; 110// level_name[Level3] = "Alt Base"; 111// level_name[Level4] = "Shift Alt"; 112// level_name[Level5] = "X"; 113// level_name[Level6] = "X Shift"; 114// level_name[Level7] = "X Alt Base"; 115// level_name[Level8] = "X Shift Alt"; 116// }; 117// 118// type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { 119// // Level5-Lock is implemented by using NumLock, because a real modifier 120// // is required. 121// 122// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; 123// 124// map[None] = Level1; 125// map[Shift] = Level2; 126// map[LevelThree] = Level3; 127// map[LevelThree+Shift] = Level4; 128// 129// map[LevelFive] = Level5; 130// map[LevelFive+Shift] = Level6; 131// map[LevelFive+LevelThree] = Level7; 132// map[LevelFive+LevelThree+Shift] = Level8; 133// 134// map[NumLock] = Level5; 135// map[NumLock+Shift] = Level6; 136// map[NumLock+LevelThree] = Level7; 137// map[NumLock+LevelThree+Shift] = Level8; 138// 139// map[NumLock+LevelFive] = Level1; 140// map[NumLock+LevelFive+Shift] = Level2; 141// map[NumLock+LevelFive+LevelThree] = Level3; 142// map[NumLock+LevelFive+LevelThree+Shift] = Level4; 143// 144// // Lock interchanges Level1 and Level2 145// map[Lock] = Level2; 146// map[Lock+Shift] = Level1; 147// map[Lock+LevelThree] = Level3; 148// map[Lock+LevelThree+Shift] = Level4; 149// 150// map[Lock+LevelFive] = Level5; 151// map[Lock+LevelFive+Shift] = Level6; 152// map[Lock+LevelFive+LevelThree] = Level7; 153// map[Lock+LevelFive+LevelThree+Shift] = Level8; 154// 155// map[Lock+NumLock] = Level5; 156// map[Lock+NumLock+Shift] = Level6; 157// map[Lock+NumLock+LevelThree] = Level7; 158// map[Lock+NumLock+LevelThree+Shift] = Level8; 159// 160// map[Lock+NumLock+LevelFive] = Level2; 161// map[Lock+NumLock+LevelFive+Shift] = Level1; 162// map[Lock+NumLock+LevelFive+LevelThree] = Level4; 163// map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3; 164// 165// preserve[LevelFive+Shift] = Shift; 166// preserve[NumLock+Shift] = Shift; 167// 168// level_name[Level1] = "Base"; 169// level_name[Level2] = "Shift"; 170// level_name[Level3] = "Alt Base"; 171// level_name[Level4] = "Shift Alt"; 172// level_name[Level5] = "X"; 173// level_name[Level6] = "X Shift"; 174// level_name[Level7] = "X Alt Base"; 175// level_name[Level8] = "X Shift Alt"; 176// }; 177 178 type "EIGHT_LEVEL_SEMIALPHABETIC" { 179 modifiers = Shift+Lock+LevelThree+LevelFive; 180 map[None] = Level1; 181 map[Shift] = Level2; 182 map[Lock] = Level2; 183 map[LevelThree] = Level3; 184 map[Shift+LevelThree] = Level4; 185 map[Lock+LevelThree] = Level3; 186 map[Lock+Shift+LevelThree] = Level4; 187 188 map[LevelFive] = Level5; 189 map[Shift+LevelFive] = Level6; 190 map[Lock+LevelFive] = Level6; 191 map[Lock+Shift+LevelFive] = Level6; 192 map[LevelThree+LevelFive] = Level7; 193 map[Shift+LevelThree+LevelFive] = Level8; 194 map[Lock+LevelThree+LevelFive] = Level7; 195 map[Lock+Shift+LevelThree+LevelFive] = Level8; 196 197 preserve[Lock+LevelThree] = Lock; 198 preserve[Lock+Shift+LevelThree] = Lock; 199 preserve[Lock+LevelFive] = Lock; 200 preserve[Lock+Shift+LevelFive] = Lock; 201 preserve[Lock+LevelThree+LevelFive] = Lock; 202 preserve[Lock+Shift+LevelThree+LevelFive] = Lock; 203 204 level_name[Level1] = "Base"; 205 level_name[Level2] = "Shift"; 206 level_name[Level3] = "Alt Base"; 207 level_name[Level4] = "Shift Alt"; 208 level_name[Level5] = "X"; 209 level_name[Level6] = "X Shift"; 210 level_name[Level7] = "X Alt Base"; 211 level_name[Level8] = "X Shift Alt"; 212 }; 213 214}; 215