1 /* This file generated automatically by xkbcomp */
3 #ifdef HAVE_DIX_CONFIG_H
4 #include <dix-config.h>
10 #define GET_ATOM(d,s) MakeAtom(s,strlen(s),1)
11 #define DPYTYPE char *
14 #define vmod_NumLock 0
16 #define vmod_LevelThree 2
18 #define vmod_ScrollLock 4
20 #define vmod_NumLockMask (1<<0)
21 #define vmod_AltMask (1<<1)
22 #define vmod_LevelThreeMask (1<<2)
23 #define vmod_AltGrMask (1<<3)
24 #define vmod_ScrollLockMask (1<<4)
26 /* types name is "default" */
27 static Atom lnames_ONE_LEVEL
[1];
29 static XkbKTMapEntryRec map_TWO_LEVEL
[1] = {
30 {1, 1, {ShiftMask
, ShiftMask
, 0}}
33 static Atom lnames_TWO_LEVEL
[2];
35 static XkbKTMapEntryRec map_ALPHABETIC
[2] = {
36 {1, 1, {ShiftMask
, ShiftMask
, 0}},
37 {1, 0, {LockMask
, LockMask
, 0}}
40 static XkbModsRec preserve_ALPHABETIC
[2] = {
42 {LockMask
, LockMask
, 0}
45 static Atom lnames_ALPHABETIC
[2];
47 static XkbKTMapEntryRec map_KEYPAD
[2] = {
48 {1, 1, {ShiftMask
, ShiftMask
, 0}},
49 {0, 1, {0, 0, vmod_NumLockMask
}}
52 static Atom lnames_KEYPAD
[2];
54 static XkbKTMapEntryRec map_PC_BREAK
[1] = {
55 {1, 1, {ControlMask
, ControlMask
, 0}}
58 static Atom lnames_PC_BREAK
[2];
60 static XkbKTMapEntryRec map_PC_SYSRQ
[1] = {
61 {0, 1, {0, 0, vmod_AltMask
}}
64 static Atom lnames_PC_SYSRQ
[2];
66 static XkbKTMapEntryRec map_CTRL_ALT
[1] = {
67 {0, 1, {ControlMask
, ControlMask
, vmod_AltMask
}}
70 static Atom lnames_CTRL_ALT
[2];
72 static XkbKTMapEntryRec map_THREE_LEVEL
[3] = {
73 {1, 1, {ShiftMask
, ShiftMask
, 0}},
74 {0, 2, {0, 0, vmod_LevelThreeMask
}},
75 {0, 2, {ShiftMask
, ShiftMask
, vmod_LevelThreeMask
}}
78 static Atom lnames_THREE_LEVEL
[3];
80 static XkbKTMapEntryRec map_SHIFT_ALT
[1] = {
81 {0, 1, {ShiftMask
, ShiftMask
, vmod_AltMask
}}
84 static Atom lnames_SHIFT_ALT
[2];
86 static XkbKeyTypeRec dflt_types
[] = {
91 None
, lnames_ONE_LEVEL
},
93 {ShiftMask
, ShiftMask
, 0},
95 1, map_TWO_LEVEL
, NULL
,
96 None
, lnames_TWO_LEVEL
},
98 {ShiftMask
| LockMask
, ShiftMask
| LockMask
, 0},
100 2, map_ALPHABETIC
, preserve_ALPHABETIC
,
101 None
, lnames_ALPHABETIC
},
103 {ShiftMask
, ShiftMask
, vmod_NumLockMask
},
106 None
, lnames_KEYPAD
},
108 {ControlMask
, ControlMask
, 0},
110 1, map_PC_BREAK
, NULL
,
111 None
, lnames_PC_BREAK
},
113 {0, 0, vmod_AltMask
},
115 1, map_PC_SYSRQ
, NULL
,
116 None
, lnames_PC_SYSRQ
},
118 {ControlMask
, ControlMask
, vmod_AltMask
},
120 1, map_CTRL_ALT
, NULL
,
121 None
, lnames_CTRL_ALT
},
123 {ShiftMask
, ShiftMask
, vmod_LevelThreeMask
},
125 3, map_THREE_LEVEL
, NULL
,
126 None
, lnames_THREE_LEVEL
},
128 {ShiftMask
, ShiftMask
, vmod_AltMask
},
130 1, map_SHIFT_ALT
, NULL
,
131 None
, lnames_SHIFT_ALT
}
134 #define num_dflt_types (sizeof(dflt_types)/sizeof(XkbKeyTypeRec))
137 initTypeNames(DPYTYPE dpy
)
139 dflt_types
[0].name
= GET_ATOM(dpy
, "ONE_LEVEL");
140 lnames_ONE_LEVEL
[0] = GET_ATOM(dpy
, "Any");
141 dflt_types
[1].name
= GET_ATOM(dpy
, "TWO_LEVEL");
142 lnames_TWO_LEVEL
[0] = GET_ATOM(dpy
, "Base");
143 lnames_TWO_LEVEL
[1] = GET_ATOM(dpy
, "Shift");
144 dflt_types
[2].name
= GET_ATOM(dpy
, "ALPHABETIC");
145 lnames_ALPHABETIC
[0] = GET_ATOM(dpy
, "Base");
146 lnames_ALPHABETIC
[1] = GET_ATOM(dpy
, "Caps");
147 dflt_types
[3].name
= GET_ATOM(dpy
, "KEYPAD");
148 lnames_KEYPAD
[0] = GET_ATOM(dpy
, "Base");
149 lnames_KEYPAD
[1] = GET_ATOM(dpy
, "Number");
150 dflt_types
[4].name
= GET_ATOM(dpy
, "PC_BREAK");
151 lnames_PC_BREAK
[0] = GET_ATOM(dpy
, "Base");
152 lnames_PC_BREAK
[1] = GET_ATOM(dpy
, "Control");
153 dflt_types
[5].name
= GET_ATOM(dpy
, "PC_SYSRQ");
154 lnames_PC_SYSRQ
[0] = GET_ATOM(dpy
, "Base");
155 lnames_PC_SYSRQ
[1] = GET_ATOM(dpy
, "Alt");
156 dflt_types
[6].name
= GET_ATOM(dpy
, "CTRL+ALT");
157 lnames_CTRL_ALT
[0] = GET_ATOM(dpy
, "Base");
158 lnames_CTRL_ALT
[1] = GET_ATOM(dpy
, "Ctrl+Alt");
159 dflt_types
[7].name
= GET_ATOM(dpy
, "THREE_LEVEL");
160 lnames_THREE_LEVEL
[0] = GET_ATOM(dpy
, "Base");
161 lnames_THREE_LEVEL
[1] = GET_ATOM(dpy
, "Shift");
162 lnames_THREE_LEVEL
[2] = GET_ATOM(dpy
, "Level3");
163 dflt_types
[8].name
= GET_ATOM(dpy
, "SHIFT+ALT");
164 lnames_SHIFT_ALT
[0] = GET_ATOM(dpy
, "Base");
165 lnames_SHIFT_ALT
[1] = GET_ATOM(dpy
, "Shift+Alt");
168 /* compat name is "default" */
169 static XkbSymInterpretRec dfltSI
[69] = {
170 {XK_ISO_Level2_Latch
, 0x0000,
171 XkbSI_LevelOneOnly
| XkbSI_Exactly
, ShiftMask
,
173 {XkbSA_LatchMods
, {0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00}}},
174 {XK_Eisu_Shift
, 0x0000,
175 XkbSI_Exactly
, LockMask
,
177 {XkbSA_NoAction
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
178 {XK_Eisu_toggle
, 0x0000,
179 XkbSI_Exactly
, LockMask
,
181 {XkbSA_NoAction
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
182 {XK_Kana_Shift
, 0x0000,
183 XkbSI_Exactly
, LockMask
,
185 {XkbSA_NoAction
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
186 {XK_Kana_Lock
, 0x0000,
187 XkbSI_Exactly
, LockMask
,
189 {XkbSA_NoAction
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
190 {XK_Shift_Lock
, 0x0000,
191 XkbSI_AnyOf
, ShiftMask
| LockMask
,
193 {XkbSA_LockMods
, {0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00}}},
194 {XK_Num_Lock
, 0x0000,
197 {XkbSA_LockMods
, {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}}},
201 {XkbSA_SetMods
, {0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
205 {XkbSA_SetMods
, {0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
206 {XK_Scroll_Lock
, 0x0000,
209 {XkbSA_LockMods
, {0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
210 {XK_ISO_Lock
, 0x0000,
213 {XkbSA_ISOLock
, {0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
214 {XK_ISO_Level3_Shift
, 0x0000,
215 XkbSI_LevelOneOnly
| XkbSI_AnyOf
, 0xff,
217 {XkbSA_SetMods
, {0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00}}},
218 {XK_ISO_Level3_Latch
, 0x0000,
219 XkbSI_LevelOneOnly
| XkbSI_AnyOf
, 0xff,
221 {XkbSA_LatchMods
, {0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00}}},
222 {XK_Mode_switch
, 0x0000,
223 XkbSI_LevelOneOnly
| XkbSI_AnyOfOrNone
, 0xff,
225 {XkbSA_SetGroup
, {0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}}},
227 XkbSI_AnyOfOrNone
, 0xff,
229 {XkbSA_MovePtr
, {0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00}}},
231 XkbSI_AnyOfOrNone
, 0xff,
233 {XkbSA_MovePtr
, {0x00, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00}}},
235 XkbSI_AnyOfOrNone
, 0xff,
237 {XkbSA_MovePtr
, {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}}},
239 XkbSI_AnyOfOrNone
, 0xff,
241 {XkbSA_MovePtr
, {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}}},
243 XkbSI_AnyOfOrNone
, 0xff,
245 {XkbSA_MovePtr
, {0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00}}},
247 XkbSI_AnyOfOrNone
, 0xff,
249 {XkbSA_MovePtr
, {0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00}}},
251 XkbSI_AnyOfOrNone
, 0xff,
253 {XkbSA_MovePtr
, {0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00}}},
255 XkbSI_AnyOfOrNone
, 0xff,
257 {XkbSA_MovePtr
, {0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00}}},
259 XkbSI_AnyOfOrNone
, 0xff,
261 {XkbSA_MovePtr
, {0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}}},
262 {XK_KP_Right
, 0x0001,
263 XkbSI_AnyOfOrNone
, 0xff,
265 {XkbSA_MovePtr
, {0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}}},
267 XkbSI_AnyOfOrNone
, 0xff,
269 {XkbSA_MovePtr
, {0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00}}},
271 XkbSI_AnyOfOrNone
, 0xff,
273 {XkbSA_MovePtr
, {0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00}}},
275 XkbSI_AnyOfOrNone
, 0xff,
277 {XkbSA_MovePtr
, {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00}}},
279 XkbSI_AnyOfOrNone
, 0xff,
281 {XkbSA_MovePtr
, {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00}}},
283 XkbSI_AnyOfOrNone
, 0xff,
285 {XkbSA_MovePtr
, {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00}}},
286 {XK_KP_Prior
, 0x0001,
287 XkbSI_AnyOfOrNone
, 0xff,
289 {XkbSA_MovePtr
, {0x00, 0x00, 0x01, 0xff, 0xff, 0x00, 0x00}}},
291 XkbSI_AnyOfOrNone
, 0xff,
293 {XkbSA_PtrBtn
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
294 {XK_KP_Begin
, 0x0001,
295 XkbSI_AnyOfOrNone
, 0xff,
297 {XkbSA_PtrBtn
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
299 XkbSI_AnyOfOrNone
, 0xff,
301 {XkbSA_SetPtrDflt
, {0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00}}},
302 {XK_KP_Divide
, 0x0001,
303 XkbSI_AnyOfOrNone
, 0xff,
305 {XkbSA_SetPtrDflt
, {0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00}}},
307 XkbSI_AnyOfOrNone
, 0xff,
309 {XkbSA_SetPtrDflt
, {0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00}}},
310 {XK_KP_Multiply
, 0x0001,
311 XkbSI_AnyOfOrNone
, 0xff,
313 {XkbSA_SetPtrDflt
, {0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00}}},
315 XkbSI_AnyOfOrNone
, 0xff,
317 {XkbSA_SetPtrDflt
, {0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00}}},
318 {XK_KP_Subtract
, 0x0001,
319 XkbSI_AnyOfOrNone
, 0xff,
321 {XkbSA_SetPtrDflt
, {0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00}}},
322 {XK_KP_Separator
, 0x0001,
323 XkbSI_AnyOfOrNone
, 0xff,
325 {XkbSA_PtrBtn
, {0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}}},
327 XkbSI_AnyOfOrNone
, 0xff,
329 {XkbSA_PtrBtn
, {0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}}},
331 XkbSI_AnyOfOrNone
, 0xff,
333 {XkbSA_LockPtrBtn
, {0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
334 {XK_KP_Insert
, 0x0001,
335 XkbSI_AnyOfOrNone
, 0xff,
337 {XkbSA_LockPtrBtn
, {0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
338 {XK_KP_Decimal
, 0x0001,
339 XkbSI_AnyOfOrNone
, 0xff,
341 {XkbSA_LockPtrBtn
, {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
342 {XK_KP_Delete
, 0x0001,
343 XkbSI_AnyOfOrNone
, 0xff,
345 {XkbSA_LockPtrBtn
, {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
346 {XK_Pointer_Button_Dflt
, 0x0000,
347 XkbSI_AnyOfOrNone
, 0xff,
349 {XkbSA_PtrBtn
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
350 {XK_Pointer_Button1
, 0x0000,
351 XkbSI_AnyOfOrNone
, 0xff,
353 {XkbSA_PtrBtn
, {0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}}},
354 {XK_Pointer_Button2
, 0x0000,
355 XkbSI_AnyOfOrNone
, 0xff,
357 {XkbSA_PtrBtn
, {0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00}}},
358 {XK_Pointer_Button3
, 0x0000,
359 XkbSI_AnyOfOrNone
, 0xff,
361 {XkbSA_PtrBtn
, {0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00}}},
362 {XK_Pointer_DblClick_Dflt
, 0x0000,
363 XkbSI_AnyOfOrNone
, 0xff,
365 {XkbSA_PtrBtn
, {0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}}},
366 {XK_Pointer_DblClick1
, 0x0000,
367 XkbSI_AnyOfOrNone
, 0xff,
369 {XkbSA_PtrBtn
, {0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00}}},
370 {XK_Pointer_DblClick2
, 0x0000,
371 XkbSI_AnyOfOrNone
, 0xff,
373 {XkbSA_PtrBtn
, {0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00}}},
374 {XK_Pointer_DblClick3
, 0x0000,
375 XkbSI_AnyOfOrNone
, 0xff,
377 {XkbSA_PtrBtn
, {0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00}}},
378 {XK_Pointer_Drag_Dflt
, 0x0000,
379 XkbSI_AnyOfOrNone
, 0xff,
381 {XkbSA_LockPtrBtn
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
382 {XK_Pointer_Drag1
, 0x0000,
383 XkbSI_AnyOfOrNone
, 0xff,
385 {XkbSA_LockPtrBtn
, {0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00}}},
386 {XK_Pointer_Drag2
, 0x0000,
387 XkbSI_AnyOfOrNone
, 0xff,
389 {XkbSA_LockPtrBtn
, {0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00}}},
390 {XK_Pointer_Drag3
, 0x0000,
391 XkbSI_AnyOfOrNone
, 0xff,
393 {XkbSA_LockPtrBtn
, {0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00}}},
394 {XK_Pointer_EnableKeys
, 0x0000,
395 XkbSI_AnyOfOrNone
, 0xff,
397 {XkbSA_LockControls
, {0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00}}},
398 {XK_Pointer_Accelerate
, 0x0000,
399 XkbSI_AnyOfOrNone
, 0xff,
401 {XkbSA_LockControls
, {0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00}}},
402 {XK_Pointer_DfltBtnNext
, 0x0000,
403 XkbSI_AnyOfOrNone
, 0xff,
405 {XkbSA_SetPtrDflt
, {0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00}}},
406 {XK_Pointer_DfltBtnPrev
, 0x0000,
407 XkbSI_AnyOfOrNone
, 0xff,
409 {XkbSA_SetPtrDflt
, {0x00, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00}}},
410 {XK_AccessX_Enable
, 0x0000,
411 XkbSI_AnyOfOrNone
, 0xff,
413 {XkbSA_LockControls
, {0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00}}},
414 {XK_Terminate_Server
, 0x0000,
415 XkbSI_AnyOfOrNone
, 0xff,
417 {XkbSA_Terminate
, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
418 {XK_ISO_Group_Latch
, 0x0000,
419 XkbSI_LevelOneOnly
| XkbSI_AnyOfOrNone
, 0xff,
421 {XkbSA_LatchGroup
, {0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}}},
422 {XK_ISO_Next_Group
, 0x0000,
423 XkbSI_LevelOneOnly
| XkbSI_AnyOfOrNone
, 0xff,
425 {XkbSA_LockGroup
, {0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}}},
426 {XK_ISO_Prev_Group
, 0x0000,
427 XkbSI_LevelOneOnly
| XkbSI_AnyOfOrNone
, 0xff,
429 {XkbSA_LockGroup
, {0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}}},
430 {XK_ISO_First_Group
, 0x0000,
431 XkbSI_AnyOfOrNone
, 0xff,
433 {XkbSA_LockGroup
, {0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}},
434 {XK_ISO_Last_Group
, 0x0000,
435 XkbSI_AnyOfOrNone
, 0xff,
437 {XkbSA_LockGroup
, {0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00}}},
439 XkbSI_Exactly
, LockMask
,
441 {XkbSA_LockMods
, {0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00}}},
445 {XkbSA_SetMods
, {0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}}
448 #define num_dfltSI (sizeof(dfltSI)/sizeof(XkbSymInterpretRec))
450 static XkbCompatMapRec compatMap
= {
452 { /* group compatibility */
454 {0, 0, vmod_AltGrMask
},
455 {0, 0, vmod_AltGrMask
},
456 {0, 0, vmod_AltGrMask
}
458 num_dfltSI
, num_dfltSI
462 initIndicatorNames(DPYTYPE dpy
, XkbDescPtr xkb
)
464 xkb
->names
->indicators
[0] = GET_ATOM(dpy
, "Caps Lock");
465 xkb
->names
->indicators
[1] = GET_ATOM(dpy
, "Num Lock");
466 xkb
->names
->indicators
[2] = GET_ATOM(dpy
, "Shift Lock");
467 xkb
->names
->indicators
[3] = GET_ATOM(dpy
, "Mouse Keys");
468 xkb
->names
->indicators
[4] = GET_ATOM(dpy
, "Scroll Lock");
469 xkb
->names
->indicators
[5] = GET_ATOM(dpy
, "Group 2");
471 #endif /* DEFAULT_H */