b.fd.o#8280,b.fd.o#8312
[xorg/xkeyboard-config] / types / extra
1 // $XFree86: xc/programs/xkbcomp/types/extra,v 1.3 2002/11/26 02:14:02 dawes Exp $
2
3 partial default xkb_types "default" {
4     // Definition for a key type used for the czech keymap, for instance.
5     // Defines style a with four level shift. It is similar to three_level
6     // type used for iso9995 but it lets the shift key behave "normally".
7
8     virtual_modifiers LevelThree;
9
10     type "FOUR_LEVEL" {
11         modifiers = Shift+LevelThree;
12         map[None] = Level1;
13         map[Shift] = Level2;
14         map[LevelThree] = Level3;
15         map[Shift+LevelThree] = Level4;
16         level_name[Level1] = "Base";
17         level_name[Level2] = "Shift";
18         level_name[Level3] = "Alt Base";  
19         level_name[Level4] = "Shift Alt";  
20     };
21
22     type "FOUR_LEVEL_ALPHABETIC" {
23         modifiers = Shift+Lock+LevelThree;
24         map[None] = Level1;
25         map[Shift] = Level2;
26         map[Lock]  = Level2;
27         map[LevelThree] = Level3;
28         map[Shift+LevelThree] = Level4;
29         map[Lock+LevelThree] =  Level4;
30         map[Lock+Shift+LevelThree] =  Level3;
31         level_name[Level1] = "Base";
32         level_name[Level2] = "Shift";
33         level_name[Level3] = "Alt Base";
34         level_name[Level4] = "Shift Alt";
35     };
36
37     type "FOUR_LEVEL_SEMIALPHABETIC" {
38         modifiers = Shift+Lock+LevelThree;
39         map[None] = Level1;
40         map[Shift] = Level2;
41         map[Lock]  = Level2;
42         map[LevelThree] = Level3;
43         map[Shift+LevelThree] = Level4;
44         map[Lock+LevelThree] =  Level3;
45         map[Lock+Shift+LevelThree] = Level4;
46         preserve[Lock+LevelThree] = Lock;
47         preserve[Lock+Shift+LevelThree] = Lock;
48         level_name[Level1] = "Base";
49         level_name[Level2] = "Shift";
50         level_name[Level3] = "Alt Base";
51         level_name[Level4] = "Shift Alt";
52     };
53
54 // Special type for keys used in Serbian Latin Unicode map
55 // It makes it possible to use all three forms of latin letters 
56 // present in Unicode that are made up of two separate letters 
57 // (forms like LJ, Lj, and lj; NJ, Nj, and nj; etc)
58
59     type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
60         modifiers = Shift+Lock+LevelThree;
61         map[None] = Level1;
62         map[Shift] = Level2;
63         map[Lock] = Level4;
64         map[LevelThree] = Level3;
65         map[Shift+LevelThree] = Level4;
66         map[Lock+LevelThree] =  Level3;
67         map[Lock+Shift+LevelThree] = Level3;
68         preserve[Lock]= Lock;
69         preserve[Lock+LevelThree]= Lock;
70         level_name[Level1] = "Base";
71         level_name[Level2] = "Shift";
72         level_name[Level3] = "AltGr Base";
73         level_name[Level4] = "Shift AltGr";
74     };
75 };
76
77 // This enables the four level shifting also for the keypad.
78 partial xkb_types "keypad" {
79     virtual_modifiers LevelThree;
80
81     type "FOUR_LEVEL_KEYPAD" {
82         modifiers = Shift+NumLock+LevelThree;
83         map[None] = Level1;
84         map[Shift] = Level2;
85         map[NumLock] = Level2;
86         map[Shift+NumLock] = Level1;
87         map[LevelThree] = Level3;
88         map[Shift+LevelThree] = Level4;
89         map[NumLock+LevelThree] = Level4;
90         map[Shift+NumLock+LevelThree] = Level3;
91         level_name[Level1] = "Base";
92         level_name[Level2] = "Number";
93         level_name[Level3] = "Alt Base";
94         level_name[Level4] = "Alt Number";
95     };       
96 };
97
98 // This enables the four level shifting also for the keypad,
99 // but levels 1 and 2, and 3 and 4 are swapped on Mac keypads.
100 partial xkb_types "mac_keypad" {
101     virtual_modifiers LevelThree;
102
103     type "FOUR_LEVEL_KEYPAD" {
104         modifiers = Shift+NumLock+LevelThree;
105         map[None] = Level2;
106         map[Shift] = Level1;
107         map[NumLock] = Level1;
108         map[Shift+NumLock] = Level2;
109         map[LevelThree] = Level4;
110         map[Shift+LevelThree] = Level3;
111         map[NumLock+LevelThree] = Level3;
112         map[Shift+NumLock+LevelThree] = Level4;
113         level_name[Level2] = "Base";
114         level_name[Level1] = "Number";
115         level_name[Level4] = "Alt Base";
116         level_name[Level3] = "Alt Number";
117     };       
118 };