COPYING added - MIT license (thanks to Keithp). Some minor fixes on infrastructure
[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[Shift+Lock+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     // This enables the four level shifting also for the keypad.
55     type "FOUR_LEVEL_KEYPAD" {
56         modifiers = Shift+NumLock+LevelThree;
57         map[None] = Level1;
58         map[Shift] = Level2;
59         map[NumLock] = Level2;
60         map[Shift+NumLock] = Level1;
61         map[LevelThree] = Level3;
62         map[Shift+LevelThree] = Level4;
63         map[NumLock+LevelThree] = Level4;
64         map[Shift+NumLock+LevelThree] = Level3;
65         level_name[Level1] = "Base";
66         level_name[Level2] = "Number";
67         level_name[Level3] = "Alt Base";
68         level_name[Level4] = "Alt Number";
69     };       
70
71 // Special type for keys used in Serbian Latin Unicode map
72 // It makes it possible to use all three forms of latin letters 
73 // present in Unicode that are made up of two separate letters 
74 // (forms like LJ, Lj, and lj; NJ, Nj, and nj; etc)
75 //
76 // Could probably prove useful for other languages too, so it
77 // better be renamed
78
79     type "SERBIAN_CAPS" {
80         modifiers = Shift+Lock+LevelThree;
81         map[None] = Level1;
82         map[Shift] = Level2;
83         map[Lock] = Level4;
84         map[LevelThree] = Level3;
85         map[Shift+LevelThree] = Level4;
86         map[Lock+LevelThree] =  Level3;
87         map[Lock+Shift+LevelThree] = Level3;
88         preserve[Lock]= Lock;
89         preserve[Lock+LevelThree]= Lock;
90         level_name[Level1] = "Base";
91         level_name[Level2] = "Shift";
92         level_name[Level3] = "AltGr Base";
93         level_name[Level4] = "Shift AltGr";
94     };
95 };
96