404e3c9e75dbaa5665d7b70a3816522b01c4e0b1
[platform/upstream/libxkbcommon.git] / test / data / types / pc
1 partial 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 };