1 // $XFree86: xc/programs/xkbcomp/types/caps,v 1.3 2002/11/26 02:14:02 dawes Exp $
3 // CapsLock uses internal capitalization rules
4 // Shift "pauses" CapsLock
5 partial xkb_types "internal" {
7 modifiers = Shift+Lock;
10 level_name[Level1] = "Base";
11 level_name[Level2] = "Caps";
14 type "FOUR_LEVEL_ALPHABETIC" {
15 modifiers = Shift+Lock+LevelThree;
18 preserve[Lock] = Lock;
19 map[LevelThree] = Level3;
20 map[Shift+LevelThree] = Level4;
21 map[Lock+LevelThree] = Level3;
22 map[Lock+Shift+LevelThree] = Level3;
23 preserve[Lock+LevelThree] = Lock;
24 level_name[Level1] = "Base";
25 level_name[Level2] = "Shift";
26 level_name[Level3] = "Alt Base";
27 level_name[Level4] = "Shift Alt";
30 type "FOUR_LEVEL_SEMIALPHABETIC" {
31 modifiers = Shift+Lock+LevelThree;
34 preserve[Lock] = Lock;
35 map[LevelThree] = Level3;
36 map[Shift+LevelThree] = Level4;
37 map[Lock+LevelThree] = Level3;
38 map[Lock+Shift+LevelThree] = Level4;
39 preserve[Lock+LevelThree] = Lock;
40 preserve[Lock+Shift+LevelThree] = Lock;
41 level_name[Level1] = "Base";
42 level_name[Level2] = "Shift";
43 level_name[Level3] = "Alt Base";
44 level_name[Level4] = "Shift Alt";
47 // CapsLock uses internal capitalization rules
48 // Shift doesn't cancel CapsLock
49 partial xkb_types "internal_nocancel" {
53 level_name[Level1] = "Base";
54 level_name[Level2] = "Caps";
57 type "FOUR_LEVEL_ALPHABETIC" {
58 modifiers = Shift+LevelThree;
61 map[LevelThree] = Level3;
62 map[Shift+LevelThree] = Level4;
63 level_name[Level1] = "Base";
64 level_name[Level2] = "Shift";
65 level_name[Level3] = "Alt Base";
66 level_name[Level4] = "Shift Alt";
69 type "FOUR_LEVEL_SEMIALPHABETIC" {
70 // the same as FOUR_LEVEL_ALPHABETIC
71 modifiers = Shift+LevelThree;
74 map[LevelThree] = Level3;
75 map[Shift+LevelThree] = Level4;
76 level_name[Level1] = "Base";
77 level_name[Level2] = "Shift";
78 level_name[Level3] = "Alt Base";
79 level_name[Level4] = "Shift Alt";
82 // CapsLock acts as Shift with locking
83 // Shift "pauses" CapsLock
84 partial xkb_types "shift" {
86 modifiers = Shift+Lock;
89 level_name[Level1] = "Base";
90 level_name[Level2] = "Caps";
93 type "FOUR_LEVEL_ALPHABETIC" {
94 modifiers = Shift+Lock+LevelThree;
98 map[LevelThree] = Level3;
99 map[Shift+LevelThree] = Level4;
100 map[Lock+LevelThree] = Level4;
101 map[Shift+Lock+LevelThree] = Level3;
102 level_name[Level1] = "Base";
103 level_name[Level2] = "Shift";
104 level_name[Level3] = "Alt Base";
105 level_name[Level4] = "Shift Alt";
108 type "FOUR_LEVEL_SEMIALPHABETIC" {
109 modifiers = Shift+Lock+LevelThree;
113 map[LevelThree] = Level3;
114 map[Shift+LevelThree] = Level4;
115 map[Lock+LevelThree] = Level3;
116 map[Lock+Shift+LevelThree] = Level4;
117 preserve[Lock+LevelThree] = Lock;
118 preserve[Lock+Shift+LevelThree] = Lock;
119 level_name[Level1] = "Base";
120 level_name[Level2] = "Shift";
121 level_name[Level3] = "Alt Base";
122 level_name[Level4] = "Shift Alt";
125 // CapsLock acts as Shift with locking
126 // Shift doesn't cancel CapsLock
127 partial xkb_types "shift_nocancel" {
129 modifiers = Shift+Lock;
132 map[Shift+Lock] = Level2;
133 level_name[Level1] = "Base";
134 level_name[Level2] = "Caps";
137 type "FOUR_LEVEL_ALPHABETIC" {
138 modifiers = Shift+Lock+LevelThree;
142 map[Shift+Lock] = Level2;
143 map[LevelThree] = Level3;
144 map[Shift+LevelThree] = Level4;
145 map[Lock+LevelThree] = Level4;
146 map[Shift+Lock+LevelThree] = Level4;
147 level_name[Level1] = "Base";
148 level_name[Level2] = "Shift";
149 level_name[Level3] = "Alt Base";
150 level_name[Level4] = "Shift Alt";
153 type "FOUR_LEVEL_SEMIALPHABETIC" {
154 modifiers = Shift+Lock+LevelThree;
158 map[Shift+Lock] = Level2;
159 map[LevelThree] = Level3;
160 map[Shift+LevelThree] = Level4;
161 map[Lock+LevelThree] = Level3;
162 map[Lock+Shift+LevelThree] = Level4;
163 preserve[Lock+LevelThree] = Lock;
164 preserve[Lock+Shift+LevelThree] = Lock;
165 level_name[Level1] = "Base";
166 level_name[Level2] = "Shift";
167 level_name[Level3] = "Alt Base";
168 level_name[Level4] = "Shift Alt";