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