Missing file
[xorg/xkeyboard-config] / types / numpad
1 partial default xkb_types "pc" {
2     type "KEYPAD" {
3         modifiers = Shift+NumLock;
4         map[None] = Level1;
5         map[Shift] = Level2;
6         map[NumLock] = Level2;
7         map[Shift+NumLock] = Level1;
8         level_name[Level1] = "Base";
9         level_name[Level2] = "Number";
10     };
11     include "extra(keypad)"
12 };
13
14 // On Mac keypads, level 1 and 2 are swapped
15 partial xkb_types "mac" {
16     type "KEYPAD" {
17         modifiers = None;
18         map[None] = Level2;
19         level_name[Level2] = "Number";
20     };
21     include "extra(keypad)"
22 };
23
24 partial xkb_types "microsoft" {
25     type "KEYPAD" {
26         modifiers = Shift+NumLock;
27         map[None] = Level1;
28         preserve[Shift] = Shift;
29         map[NumLock] = Level2;
30         level_name[Level1] = "Base";
31         level_name[Level2] = "Number";
32     };
33     include "extra(keypad)"
34 };
35
36 // Swiss-German style numeric keypad: Shift and NumLock operates as
37 // two independent modifiers; however, since we want shift state for
38 // the cursor keys, only three levels are used from the key mappings.
39 // Closest type is actually FOUR_LEVEL_X, but most numpad layouts uses
40 // FOUR_LEVEL_MIXED_KEYPAD so that's the one we are going to override.
41 partial xkb_types "shift3" {
42     type "FOUR_LEVEL_MIXED_KEYPAD" {
43         modifiers = Shift+NumLock+Control+Alt;
44
45         // NumLock Off => navigate using cursor keys
46         map[None] = Level1;
47
48         // NumLock Off + Shift pressed => select using cursor keys
49         preserve[Shift] = Shift;
50
51         // NumLock On => decimal digits
52         map[NumLock] = Level2;
53
54         // NumLock On + Shift pressed => auxiliary symbols,
55         // e.g. hexadecimal digits
56         map[Shift+NumLock] = Level3;
57
58         // Ctrl + Alt, regardless of NumLock and Shift => command keys
59         map[Control+Alt] = Level4;
60
61         // reverse map from levels to modifiers
62         level_name[Level1] = "Base";
63         level_name[Level2] = "NumLock";
64         level_name[Level3] = "Shift+NumLock";
65         level_name[Level4] = "Ctrl+Alt";
66     };
67 };