1 partial default xkb_types "default" {
3 // Some types that are necessary
4 // for a full implementation of
5 // a PC-compatible keyboard.
8 virtual_modifiers LevelThree;
9 virtual_modifiers LAlt;
10 virtual_modifiers RAlt;
11 virtual_modifiers RControl;
12 virtual_modifiers LControl;
14 type "PC_SUPER_LEVEL2" {
18 level_name[Level1] = "Base";
19 level_name[Level2] = "Super";
22 type "PC_CONTROL_LEVEL2" {
25 map[Control] = Level2;
26 level_name[Level1] = "Base";
27 level_name[Level2] = "Control";
30 type "PC_LCONTROL_LEVEL2" {
33 map[LControl] = Level2;
34 level_name[Level1] = "Base";
35 level_name[Level2] = "LControl";
38 type "PC_RCONTROL_LEVEL2" {
41 map[RControl] = Level2;
42 level_name[Level1] = "Base";
43 level_name[Level2] = "RControl";
46 type "PC_ALT_LEVEL2" {
50 level_name[Level1] = "Base";
51 level_name[Level2] = "Alt";
54 type "PC_LALT_LEVEL2" {
58 level_name[Level1] = "Base";
59 level_name[Level2] = "LAlt";
62 type "PC_RALT_LEVEL2" {
66 level_name[Level1] = "Base";
67 level_name[Level2] = "RAlt";
71 modifiers = Control+Alt+Shift+LevelThree;
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";
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;
97 map[Lock+Shift] = Level1;
101 map[LevelThree] = Level3;
102 map[Lock+Shift+LevelThree] = Level3;
103 map[Shift+LevelThree] = Level4;
104 map[Lock+LevelThree] = Level4;
106 map[Control] = Level5;
107 map[Lock+Shift+Control] = Level5;
108 map[Shift+Control] = Level6;
109 map[Lock+Control] = Level6;
111 map[LevelThree+Control] = Level7;
112 map[Lock+Shift+LevelThree+Control] = Level7;
113 map[Shift+LevelThree+Control] = Level8;
114 map[Lock+LevelThree+Control] = Level8;
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";