keypad revision 1.1.1.10 1 partial hidden keypad_keys
2 xkb_symbols "overlay" {
3 include "keypad(overlay1)"
4 };
5
6 partial hidden keypad_keys
7 xkb_symbols "overlay1" {
8
9 key <KP7> { [ KP_Home ], overlay1=<KO7> };
10 key <KP8> { [ KP_Up ], overlay1=<KO8> };
11 key <KP9> { [ KP_Prior ], overlay1=<KO9> };
12
13 key <KP4> { [ KP_Left ], overlay1=<KO4> };
14 key <KP5> { [ KP_Begin ], overlay1=<KO5> };
15 key <KP6> { [ KP_Right ], overlay1=<KO6> };
16
17 key <KP1> { [ KP_End ], overlay1=<KO1> };
18 key <KP2> { [ KP_Down ], overlay1=<KO2> };
19 key <KP3> { [ KP_Next ], overlay1=<KO3> };
20
21 key <KP0> { [ KP_Insert ], overlay1=<KO0> };
22 key <KPDL> { [ KP_Delete ], overlay1=<KODL> };
23
24 key <KO7> { [ KP_7 ] };
25 key <KO8> { [ KP_8 ] };
26 key <KO9> { [ KP_9 ] };
27
28 key <KO4> { [ KP_4 ] };
29 key <KO5> { [ KP_5 ] };
30 key <KO6> { [ KP_6 ] };
31
32 key <KO1> { [ KP_1 ] };
33 key <KO2> { [ KP_2 ] };
34 key <KO3> { [ KP_3 ] };
35
36 key <KO0> { [ KP_0 ] };
37 key <KODL> { [ KP_Decimal ] };
38 };
39
40 partial hidden keypad_keys
41 xkb_symbols "overlay2" {
42
43 key <KP7> { [ KP_Home ], overlay2=<KO7> };
44 key <KP8> { [ KP_Up ], overlay2=<KO8> };
45 key <KP9> { [ KP_Prior ], overlay2=<KO9> };
46
47 key <KP4> { [ KP_Left ], overlay2=<KO4> };
48 key <KP5> { [ KP_Begin ], overlay2=<KO5> };
49 key <KP6> { [ KP_Right ], overlay2=<KO6> };
50
51 key <KP1> { [ KP_End ], overlay2=<KO1> };
52 key <KP2> { [ KP_Down ], overlay2=<KO2> };
53 key <KP3> { [ KP_Next ], overlay2=<KO3> };
54
55 key <KP0> { [ KP_Insert ], overlay2=<KO0> };
56 key <KPDL> { [ KP_Delete ], overlay2=<KODL> };
57
58 key <KO7> { [ KP_7 ] };
59 key <KO8> { [ KP_8 ] };
60 key <KO9> { [ KP_9 ] };
61
62 key <KO4> { [ KP_4 ] };
63 key <KO5> { [ KP_5 ] };
64 key <KO6> { [ KP_6 ] };
65
66 key <KO1> { [ KP_1 ] };
67 key <KO2> { [ KP_2 ] };
68 key <KO3> { [ KP_3 ] };
69
70 key <KO0> { [ KP_0 ] };
71 key <KODL> { [ KP_Decimal ] };
72 };
73
74 partial hidden keypad_keys
75 xkb_symbols "operators" {
76 // Puts some commands to control the X server on
77 // the fifth level of the keypad's operator keys.
78 key <KPDV> {
79 type="CTRL+ALT", // Ungrab cancels server/keyboard/pointer grabs
80 symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]
81 };
82 key <KPMU> {
83 type="CTRL+ALT", // ClsGrb kills whichever client has a grab in effect
84 symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]
85 };
86 key <KPSU> {
87 type="CTRL+ALT", // -VMode switches to the previous video mode
88 symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]
89 };
90 key <KPAD> {
91 type="CTRL+ALT", // +VMode switches to the next video mode
92 symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ]
93 };
94 };
95
96 default partial hidden keypad_keys
97 xkb_symbols "x11" {
98
99 include "keypad(operators)"
100
101 key <KP7> { [ KP_Home, KP_7 ] };
102 key <KP8> { [ KP_Up, KP_8 ] };
103 key <KP9> { [ KP_Prior, KP_9 ] };
104
105 key <KP4> { [ KP_Left, KP_4 ] };
106 key <KP5> { [ KP_Begin, KP_5 ] };
107 key <KP6> { [ KP_Right, KP_6 ] };
108
109 key <KP1> { [ KP_End, KP_1 ] };
110 key <KP2> { [ KP_Down, KP_2 ] };
111 key <KP3> { [ KP_Next, KP_3 ] };
112 key <KPEN> { [ KP_Enter ] };
113 key <KPEQ> { [ KP_Equal ] };
114
115 key <KP0> { [ KP_Insert, KP_0 ] };
116 key <KPDL> { [ KP_Delete, KP_Decimal ] };
117 key <KPPT> { [ KP_Decimal, KP_Decimal ] };
118 };
119
120
121 // Legacy PC keypad definition
122 // Copyright 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
123 keypad_keys
124 xkb_symbols "legacy" {
125
126 include "keypad(core)"
127 include "keypad(legacymath)"
128 include "keypad(legacynumber)"
129 include "kpdl(dot)"
130 };
131
132
133 // Legacy Wang 725-3771-ae and 725-3771-uk keypad definition
134 // Copyright 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
135 keypad_keys
136 xkb_symbols "legacy_wang" {
137
138 include "keypad(core)"
139 include "keypad(legacymath)"
140 include "keypad(legacynumber_wang)"
141 include "kpdl(dot)"
142 };
143
144
145 // Complete new keypad definition
146 // Copyright 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
147 keypad_keys
148 xkb_symbols "oss" {
149
150 include "keypad(core)"
151 include "keypad(ossmath)"
152 include "keypad(ossnumber)"
153 include "kpdl(dotoss)"
154 };
155
156
157 // Latin9 restriction of new keypad definition
158 // Copyright 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
159 keypad_keys
160 xkb_symbols "oss_latin9" {
161
162 include "keypad(core)"
163 include "keypad(ossmath_latin9)"
164 include "keypad(legacynumber)"
165 include "kpdl(dotoss_latin9)"
166 };
167
168
169 // Wang 725-3771-ae and 725-3771-uk keypad variant of oss keypad
170 // Copyright 2006-2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
171 keypad_keys
172 xkb_symbols "oss_wang" {
173
174 include "keypad(core)"
175 include "keypad(ossmath)"
176 include "keypad(ossnumber_wang)"
177 include "kpdl(dotoss)"
178 };
179
180
181 // Forward-looking keypad definition
182 // Won't work with applications that make ASCII assumptions
183 // Copyright 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
184 keypad_keys
185 xkb_symbols "future" {
186
187 include "keypad(core)"
188 include "keypad(futuremath)"
189 include "keypad(ossnumber)"
190 include "kpdl(commaoss)"
191 };
192
193
194 // Forward-looking keypad definition
195 // Won't work with applications that make ASCII assumptions
196 // Copyright 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
197 keypad_keys
198 xkb_symbols "future_wang" {
199
200 include "keypad(core)"
201 include "keypad(futuremath)"
202 include "keypad(ossnumber_wang)"
203 include "kpdl(commaoss)"
204 };
205
206
207 // Keypad keys nobody changes
208 // Copyright 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
209 partial keypad_keys
210 xkb_symbols "core" {
211
212 modifier_map Mod2 { Num_Lock };
213
214 key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
215 key <KPEN> { [ KP_Enter ] };
216 key <KPEQ> { [ KP_Equal ] };
217 };
218
219
220 // Legacy keypad math area
221 // Copyright 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
222 //
223 //
224 // Num <XF86_Ungrab>
225 // Lock / * - <XF86_ClearGrab>
226 // <XF86_Prev_VMode>
227 // <XF86_Next_VMode>
228 //
229 // 1 None
230 // 2 Ctrl+Alt
231 // +
232 //
233 partial keypad_keys
234 xkb_symbols "legacymath" {
235
236 key.type[Group1]="CTRL+ALT" ;
237
238 key <KPDV> { [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; // / <XF86_Ungrab>
239 key <KPMU> { [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; // * <XF86_ClearGrab>
240 key <KPSU> { [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
241
242 key <KPAD> { [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; // + <XF86_Next_VMode>
243 };
244
245
246 // Keypad math area with non-CS operators
247 // Copyright 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
248 //
249 //
250 // Num . <XF86_Ungrab>
251 // Lock / * - <XF86_ClearGrab>
252 // <XF86_Prev_VMode>
253 // + <XF86_Next_VMode>
254 //
255 // 1 None
256 // 2 Level3
257 // + + 3 Shift+Level3
258 // 4 Ctrl+Alt
259 partial keypad_keys
260 xkb_symbols "ossmath" {
261
262 key.type[Group1]="CTRL+ALT" ;
263
264 key <KPDV> { [ KP_Divide, 0x1002215, 0x10000F7, VoidSymbol, XF86_Ungrab ] }; // / <XF86_Ungrab>
265 key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol, XF86_ClearGrab ] }; // * <XF86_ClearGrab>
266 key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
267
268 key <KPAD> { [ KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
269 };
270
271
272 // Keypad math area with non-CS operators in first levels
273 // As demanded by users not interested in legacy pre-unicode junk
274 // Copyright 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
275 //
276 //
277 // Num / * - <XF86_Ungrab>
278 // Lock . <XF86_ClearGrab>
279 // <XF86_Prev_VMode>
280 // + <XF86_Next_VMode>
281 //
282 // 1 None
283 // 2 Level3
284 // + + 3 Shift+Level3
285 // 4 Ctrl+Alt
286 partial keypad_keys
287 xkb_symbols "futuremath" {
288
289 key.type[Group1]="FOUR_LEVEL_X" ;
290
291 key <KPDV> { [ 0x1002215, KP_Divide, 0x10000F7, XF86_Ungrab ] }; // / <XF86_Ungrab>
292 key <KPMU> { [ 0x10022C5, KP_Multiply, 0x10000D7, XF86_ClearGrab ] }; // * <XF86_ClearGrab>
293 key <KPSU> { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; // - <XF86_Prev_VMode>
294
295 key <KPAD> { [ 0x100002B, KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
296 };
297
298
299 // Keypad math area with non-CS operators, restricted to latin9
300 // Copyright 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
301 //
302 //
303 // Num / - <XF86_Ungrab>
304 // Lock / * - - <XF86_ClearGrab>
305 // <XF86_Prev_VMode>
306 // + <XF86_Next_VMode>
307 //
308 // 1 None
309 // 2 Level3
310 // + + 3 Shift+Level3
311 // 4 Ctrl+Alt
312 partial keypad_keys
313 xkb_symbols "ossmath_latin9" {
314
315 key.type[Group1]="FOUR_LEVEL_X";
316
317 key <KPDV> { [ KP_Divide, slash, division, XF86_Ungrab ] }; // / / <XF86_Ungrab>
318 key <KPMU> { [ KP_Multiply, periodcentered, multiply, XF86_ClearGrab ] }; // * <XF86_ClearGrab>
319 key <KPSU> { [ KP_Subtract, minus, minus, XF86_Prev_VMode ] }; // - - - <XF86_Prev_VMode>
320
321 key <KPAD> { [ KP_Add, plus, plus, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
322 };
323
324
325 // Legacy keypad number area
326 // Copyright 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
327 //
328 //
329 // Num Home
330 // Lock End
331 // Page up
332 // 7 8 9 Page down
333 // Insert
334 // Delete
335 // 4 5 6 Directions
336 //
337 //
338 // 1 2 3
339 // 1 None
340 // 2 Num Lock
341 // 0
342 //
343 //
344 partial keypad_keys
345 xkb_symbols "legacynumber" {
346
347 key.type[Group1]="KEYPAD" ;
348
349 key <KP7> { [ KP_Home, KP_7 ] }; // <home> 7
350 key <KP8> { [ KP_Up, KP_8 ] }; // <up> 8
351 key <KP9> { [ KP_Prior, KP_9 ] }; // <prior> 9
352
353 key <KP4> { [ KP_Left, KP_4 ] }; // <left> 4
354 key <KP5> { [ KP_Begin, KP_5 ] }; // <begin> 5
355 key <KP6> { [ KP_Right, KP_6 ] }; // <right> 6
356
357 key <KP1> { [ KP_End, KP_1 ] }; // <end> 1
358 key <KP2> { [ KP_Down, KP_2 ] }; // <down> 2
359 key <KP3> { [ KP_Next, KP_3 ] }; // <next> 3
360
361 key <KP0> { [ KP_Insert, KP_0 ] }; // <insert> 0
362 };
363
364
365 // Legacy Wang 725-3771-ae and 725-3771-uk keypad number area
366 // Copyright 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
367 // This is actually a three-level keypad, declared as four-level
368 // to avoid defining a new type
369 //
370 //
371 // Num Home
372 // Lock End
373 // Page up
374 // 7 8 9 Page down
375 // < > ^ Insert
376 // Delete
377 // 4 5 6 Directions
378 // [ ] $
379 //
380 // 1 2 3
381 // & @ # 1 None
382 // 2 Num Lock
383 // 0 3 Level3
384 //
385 //
386 partial keypad_keys
387 xkb_symbols "legacynumber_wang" {
388
389 key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
390
391 key <KP7> { [ KP_Home, KP_7, less ] }; // <home> 7 <
392 key <KP8> { [ KP_Up, KP_8, greater ] }; // <up> 8 >
393 key <KP9> { [ KP_Prior, KP_9, asciicircum ] }; // <prior> 9 ^
394
395 key <KP4> { [ KP_Left, KP_4, bracketleft ] }; // <left> 4 [
396 key <KP5> { [ KP_Begin, KP_5, bracketright ] }; // <begin> 5 ]
397 key <KP6> { [ KP_Right, KP_6, dollar ] }; // <right> 6 $
398
399 key <KP1> { [ KP_End, KP_1, ampersand ] }; // <end> 1 &
400 key <KP2> { [ KP_Down, KP_2, at ] }; // <down> 2 @
401 key <KP3> { [ KP_Next, KP_3, numbersign ] }; // <next> 3 #
402
403 key <KP0> { [ KP_Insert, KP_0, apostrophe ] }; // <insert> 0 '
404 };
405
406
407 // Keypad number area with arrow symbols
408 // Copyright 2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
409 //
410 //
411 // Num Home
412 // Lock End
413 // Page up
414 // 7 8 9 Page down
415 // Insert
416 // Delete
417 // 4 5 6 Directions
418 // narrow no-break space
419 //
420 // 1 2 3
421 // 1 None
422 // 2 Num Lock
423 // 0 3 Level3
424 // 4 Shift+Level3
425 //
426 partial keypad_keys
427 xkb_symbols "ossnumber" {
428
429 key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
430
431 key <KP7> { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // <home> 7
432 key <KP8> { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // <up> 8
433 key <KP9> { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // <prior> 9
434
435 key <KP4> { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // <left> 4
436 key <KP5> { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // <begin> 5
437 key <KP6> { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // <right> 6
438
439 key <KP1> { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // <end> 1
440 key <KP2> { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // <down> 2
441 key <KP3> { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // <next> 3
442
443 key <KP0> { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // <insert> 0
444 };
445
446
447 // Wang 725-3771-ae and 725-3771-uk keypad number area with additional arrow symbols
448 // Copyright 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
449 //
450 //
451 // Num Home
452 // Lock End
453 // Page up
454 // 7 8 9 Page down
455 // < > ^ Insert
456 // Delete
457 // 4 5 6 Directions
458 // [ ] $ narrow no-break space
459 //
460 // 1 2 3
461 // & @ # 1 None
462 // 2 Num Lock
463 // 0 3 Level3
464 // ' 4 Shift+Level3
465 //
466 partial keypad_keys
467 xkb_symbols "ossnumber_wang" {
468
469 key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
470
471 key <KP7> { [ KP_Home, KP_7, less, 0x1002196 ] }; // <home> 7 <
472 key <KP8> { [ KP_Up, KP_8, greater, 0x1002191 ] }; // <up> 8 >
473 key <KP9> { [ KP_Prior, KP_9, asciicircum, 0x1002197 ] }; // <prior> 9 ^
474
475 key <KP4> { [ KP_Left, KP_4, bracketleft, 0x1002190 ] }; // <left> 4 [
476 key <KP5> { [ KP_Begin, KP_5, bracketright, 0x1002194 ] }; // <begin> 5 ]
477 key <KP6> { [ KP_Right, KP_6, dollar, 0x1002192 ] }; // <right> 6 $
478
479 key <KP1> { [ KP_End, KP_1, ampersand, 0x1002199 ] }; // <end> 1 &
480 key <KP2> { [ KP_Down, KP_2, at, 0x1002193 ] }; // <down> 2 @
481 key <KP3> { [ KP_Next, KP_3, numbersign, 0x1002198 ] }; // <next> 3 #
482
483 key <KP0> { [ KP_Insert, KP_0, apostrophe, 0x1002195 ] }; // <insert> 0 '
484 };
485
486 // Standard base "pc" layout only contains cursor keys, and then gets
487 // augmented with the digits later. If you define your own layout for
488 // the numpad you can inherit the cursors, but you'll have to define
489 // the digits yourself. This module can be included in the rules to
490 // define math operators; these are the variants used in computer
491 // languages that are based on ASCII. NoSymbol doesn't mean that
492 // nothing is bound to the key but that no assignment is done here.
493 // srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to
494 // be of type CTRL+ALT in order to assign server control events to
495 // them, but it uses the second level which is overwritten if we have
496 // more than one definition (shift state) for the key. Instead, here
497 // the commands are put at the fourth level.
498 partial keypad_keys
499 xkb_symbols "ops" {
500 key <KPDV> { [ NoSymbol, slash, NoSymbol, XF86_Ungrab ] };
501 key <KPMU> { [ NoSymbol, asterisk, NoSymbol, XF86_ClearGrab ] };
502 key <KPSU> { [ NoSymbol, minus, NoSymbol, XF86_Prev_VMode ] };
503 key <KPAD> { [ NoSymbol, plus, NoSymbol, XF86_Next_VMode ] };
504 key <KPEQ> { [ NoSymbol, equal ] };
505 };
506
507 // Hexadecimal Numpad, by Roland Kaufmann <rlndkfmn at gmail dot com>
508 // License: BSD (also covers variant with ATM digit order)
509 // Third-level gives the letters used in hexadecimal numbers, or
510 // columns in small spreadsheets. As a bonus, having 'e' available at
511 // the center of the keyboard makes it easy to enter floating point
512 // numbers in scientific notation.
513 // Equal is added to start formulas (most numpads on PCs don't have
514 // their own equal key), comma as a list separator (as most
515 // programming languages wants period as a decimal separator) and
516 // colon to enter times and ranges. Someone also may want to represent
517 // multiplication and division in prose using x and colon.
518 // Two first levels are specified as NoSymbol to not override any
519 // previous specification. Combine this with another keypad specifier,
520 // e.g. "legacy".
521 partial keypad_keys
522 xkb_symbols "hex" {
523 key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;
524
525 // None NumLock AltGr
526 // symbol row
527 key <KPDV> { [ NoSymbol, NoSymbol, parenleft ] };
528 key <KPMU> { [ NoSymbol, NoSymbol, parenright ] };
529 key <KPSU> { [ NoSymbol, NoSymbol, dollar ] };
530
531 // upper row
532 key <KP7> { [ NoSymbol, NoSymbol, a ] };
533 key <KP8> { [ NoSymbol, NoSymbol, b ] };
534 key <KP9> { [ NoSymbol, NoSymbol, c ] };
535
536 // home row
537 key <KP4> { [ NoSymbol, NoSymbol, d ] };
538 key <KP5> { [ NoSymbol, NoSymbol, e ] };
539 key <KP6> { [ NoSymbol, NoSymbol, f ] };
540 key <KPAD> { [ NoSymbol, NoSymbol, comma ] };
541
542 // lower row
543 key <KP1> { [ NoSymbol, NoSymbol, equal ] };
544 key <KP2> { [ NoSymbol, NoSymbol, x ] };
545 key <KP3> { [ NoSymbol, NoSymbol, colon ] };
546
547 // decimal row
548 key <KP0> { [ NoSymbol, NoSymbol, backslash ] };
549 };
550
551 // Main numbers follows the traditions from ATMs and phones with
552 // numbers increasing downwards to the right. (It is easier to
553 // change the keyboard layout than to reprogram your local ATM;
554 // also cell-phones are becoming more common while calculators are
555 // becoming more rare).
556 // First level is left unspecified, so it may be combined with another
557 // layout, e.g. "legacy".
558 partial keypad_keys
559 xkb_symbols "atm" {
560 // upper row
561 key <KP7> { [ NoSymbol, KP_1 ] };
562 key <KP8> { [ NoSymbol, KP_2 ] };
563 key <KP9> { [ NoSymbol, KP_3 ] };
564
565 // lower row
566 key <KP1> { [ NoSymbol, KP_7 ] };
567 key <KP2> { [ NoSymbol, KP_8 ] };
568 key <KP3> { [ NoSymbol, KP_9 ] };
569 };
570
571
572 partial modifier_keys
573 xkb_symbols "pointerkeys" {
574 key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
575 };
576
577
578 // Only numbers, operators and decimal separator,
579 // as seen on keypad overlay on Japanese keyboard.
580 //
581 // 789*
582 //
583 // 456-
584 //
585 // 123+
586 //
587 // 0 /
588 //
589 partial keypad_keys
590 xkb_symbols "numoperdecsep" {
591 key <KO7> { [ KP_7 ] };
592 key <KO8> { [ KP_8 ] };
593 key <KO9> { [ KP_9 ] };
594 // ClsGrb kills whichever client has a grab in effect
595 key <KOMU> {
596 type="CTRL+ALT",
597 symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ]
598 };
599
600 key <KO4> { [ KP_4 ] };
601 key <KO5> { [ KP_5 ] };
602 key <KO6> { [ KP_6 ] };
603 // -VMode switches to the previous video mode
604 key <KOSU> {
605 type="CTRL+ALT",
606 symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ]
607 };
608
609 key <KO1> { [ KP_1 ] };
610 key <KO2> { [ KP_2 ] };
611 key <KO3> { [ KP_3 ] };
612 // +VMode switches to the next video mode
613 key <KOAD> {
614 type="CTRL+ALT",
615 symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ]
616 };
617
618 key <KO0> { [ KP_0 ] };
619 key <KODL> { [ KP_Decimal ] };
620 // Ungrab cancels server/keyboard/pointer grabs
621 key <KODV> {
622 type="CTRL+ALT",
623 symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ]
624 };
625 };
626