1 partial default xkb_types "default" {
2 // Definition for a key type used for the czech keymap, for instance.
3 // Defines style a with four level shift. It is similar to three_level
4 // type used for iso9995 but it lets the shift key behave "normally".
6 virtual_modifiers LevelThree;
9 modifiers = Shift+LevelThree;
12 map[LevelThree] = Level3;
13 map[Shift+LevelThree] = Level4;
14 level_name[Level1] = "Base";
15 level_name[Level2] = "Shift";
16 level_name[Level3] = "Alt Base";
17 level_name[Level4] = "Shift Alt";
20 type "FOUR_LEVEL_ALPHABETIC" {
21 modifiers = Shift+Lock+LevelThree;
25 map[LevelThree] = Level3;
26 map[Shift+LevelThree] = Level4;
27 map[Lock+LevelThree] = Level4;
28 map[Lock+Shift+LevelThree] = Level3;
29 level_name[Level1] = "Base";
30 level_name[Level2] = "Shift";
31 level_name[Level3] = "Alt Base";
32 level_name[Level4] = "Shift Alt";
35 type "FOUR_LEVEL_SEMIALPHABETIC" {
36 modifiers = Shift+Lock+LevelThree;
40 map[LevelThree] = Level3;
41 map[Shift+LevelThree] = Level4;
42 map[Lock+LevelThree] = Level3;
43 map[Lock+Shift+LevelThree] = Level4;
44 preserve[Lock+LevelThree] = Lock;
45 preserve[Lock+Shift+LevelThree] = Lock;
46 level_name[Level1] = "Base";
47 level_name[Level2] = "Shift";
48 level_name[Level3] = "Alt Base";
49 level_name[Level4] = "Shift Alt";
52 // Another four level keypad variant
53 // First two levels are controled by NumLock (with active Shift-ing like
54 // in KEYPAD). LevelThree overrides this mode, with two additional
56 // NumLock state is intentionnaly ignored when LevelThree is active
57 type "FOUR_LEVEL_MIXED_KEYPAD" {
58 modifiers = Shift+NumLock+LevelThree;
60 map[Shift+NumLock] = Level1;
61 map[NumLock] = Level2;
63 map[LevelThree] = Level3;
64 map[NumLock+LevelThree] = Level3;
65 map[Shift+LevelThree] = Level4;
66 map[Shift+NumLock+LevelThree] = Level4;
67 level_name[Level1] = "Base";
68 level_name[Level2] = "Number";
69 level_name[Level3] = "Alt Base";
70 level_name[Level4] = "Shift Alt";
73 // Base level, two Shift-ed LevelThree levels, one Ctrl+Alt command level
75 modifiers = Shift+LevelThree+Control+Alt;
77 map[LevelThree] = Level2;
78 map[Shift+LevelThree] = Level3;
79 map[Control+Alt] = Level4;
80 level_name[Level1] = "Base";
81 level_name[Level2] = "Alt Base";
82 level_name[Level3] = "Shift Alt";
83 level_name[Level4] = "Ctrl+Alt";
86 // Special type for keys used in Serbian Latin Unicode map
87 // It makes it possible to use all three forms of latin letters
88 // present in Unicode that are made up of two separate letters
89 // (forms like LJ, Lj, and lj; NJ, Nj, and nj; etc)
91 type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
92 modifiers = Shift+Lock+LevelThree;
96 map[LevelThree] = Level3;
97 map[Shift+LevelThree] = Level4;
98 map[Lock+LevelThree] = Level3;
99 map[Lock+Shift+LevelThree] = Level3;
100 preserve[Lock]= Lock;
101 preserve[Lock+LevelThree]= Lock;
102 level_name[Level1] = "Base";
103 level_name[Level2] = "Shift";
104 level_name[Level3] = "AltGr Base";
105 level_name[Level4] = "Shift AltGr";
108 // type for e.g. german ssharp which is capitalized SS.
110 // It is FOUR_LEVEL with the exception that the fifth level
111 // is mapped to the Lock modifier.
112 // If other modifiers are used, the Lock state is ignored.
113 // DETAILS ABOUT GERMAN:
114 // The capital form of ssharp (called sharp s) only exists for
115 // completely capitalized Text, not at the beginning of sentences
116 // or nouns (nouns have a captial letter at the beginning in german).
117 // The ssharp key, to the right of the zero key, takes this into
118 // account and has a questionmark mapped on shift-ssharp since
119 // normally no capital version is needed.
120 // When typing with active capsLock, this key type is needed to
121 // output two capital letters S because this is the only german key
122 // whose capital letter is not the same as the one typed with shift.
124 type "FOUR_LEVEL_PLUS_LOCK" {
125 modifiers = Shift+Lock+LevelThree;
128 map[LevelThree] = Level3;
129 map[Shift+LevelThree] = Level4;
131 map[Lock+Shift] = Level2;
132 map[Lock+LevelThree] = Level3;
133 map[Lock+Shift+LevelThree] = Level4;
134 level_name[Level1] = "Base";
135 level_name[Level2] = "Shift";
136 level_name[Level3] = "Alt Base";
137 level_name[Level4] = "Shift Alt";
138 level_name[Level5] = "Lock";
142 // This enables the four level shifting also for the keypad.
143 partial xkb_types "keypad" {
144 virtual_modifiers LevelThree;
146 type "FOUR_LEVEL_KEYPAD" {
147 modifiers = Shift+NumLock+LevelThree;
150 map[NumLock] = Level2;
151 map[Shift+NumLock] = Level1;
152 map[LevelThree] = Level3;
153 map[Shift+LevelThree] = Level4;
154 map[NumLock+LevelThree] = Level4;
155 map[Shift+NumLock+LevelThree] = Level3;
156 level_name[Level1] = "Base";
157 level_name[Level2] = "Number";
158 level_name[Level3] = "Alt Base";
159 level_name[Level4] = "Alt Number";