• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// CapsLock uses internal capitalization rules,
2// Shift "pauses" CapsLock.
3partial xkb_types "internal" {
4    type "ALPHABETIC" {
5	modifiers = Shift+Lock;
6	map[Shift] = Level2;
7	preserve[Lock] = Lock;
8	level_name[Level1] = "Base";
9	level_name[Level2] = "Caps";
10    };
11
12    type "FOUR_LEVEL_ALPHABETIC" {
13	modifiers = Shift+Lock+LevelThree;
14	map[None] = Level1;
15	map[Shift] = Level2;
16	preserve[Lock] = Lock;
17	map[LevelThree] = Level3;
18	map[Shift+LevelThree] = Level4;
19	map[Lock+LevelThree] =  Level3;
20	map[Lock+Shift+LevelThree] = Level3;
21	preserve[Lock+LevelThree] = Lock;
22	level_name[Level1] = "Base";
23	level_name[Level2] = "Shift";
24	level_name[Level3] = "Alt Base";
25	level_name[Level4] = "Shift Alt";
26    };
27
28    type "FOUR_LEVEL_SEMIALPHABETIC" {
29	modifiers = Shift+Lock+LevelThree;
30	map[None] = Level1;
31	map[Shift] = Level2;
32	preserve[Lock] = Lock;
33	map[LevelThree] = Level3;
34	map[Shift+LevelThree] = Level4;
35	map[Lock+LevelThree] =  Level3;
36	map[Lock+Shift+LevelThree] = Level4;
37	preserve[Lock+LevelThree] = Lock;
38	preserve[Lock+Shift+LevelThree] = Lock;
39	level_name[Level1] = "Base";
40	level_name[Level2] = "Shift";
41	level_name[Level3] = "Alt Base";
42	level_name[Level4] = "Shift Alt";
43    };
44};
45
46// CapsLock uses internal capitalization rules,
47// Shift does not cancel CapsLock.
48partial xkb_types "internal_nocancel" {
49    type "ALPHABETIC" {
50	modifiers = Shift;
51	map[Shift] = Level2;
52	level_name[Level1] = "Base";
53	level_name[Level2] = "Caps";
54    };
55
56    type "FOUR_LEVEL_ALPHABETIC" {
57	modifiers = Shift+LevelThree;
58	map[None] = Level1;
59	map[Shift] = Level2;
60	map[LevelThree] = Level3;
61	map[Shift+LevelThree] = Level4;
62	level_name[Level1] = "Base";
63	level_name[Level2] = "Shift";
64	level_name[Level3] = "Alt Base";
65	level_name[Level4] = "Shift Alt";
66    };
67
68    type "FOUR_LEVEL_SEMIALPHABETIC" {
69        // the same as FOUR_LEVEL_ALPHABETIC
70	modifiers = Shift+LevelThree;
71	map[None] = Level1;
72	map[Shift] = Level2;
73	map[LevelThree] = Level3;
74	map[Shift+LevelThree] = Level4;
75	level_name[Level1] = "Base";
76	level_name[Level2] = "Shift";
77	level_name[Level3] = "Alt Base";
78	level_name[Level4] = "Shift Alt";
79    };
80};
81
82// CapsLock acts as Shift with locking,
83// Shift "pauses" CapsLock.
84partial xkb_types "shift" {
85    type "ALPHABETIC" {
86	modifiers = Shift+Lock;
87	map[Shift] = Level2;
88	map[Lock] = Level2;
89	level_name[Level1] = "Base";
90	level_name[Level2] = "Caps";
91    };
92
93    type "FOUR_LEVEL_ALPHABETIC" {
94	modifiers = Shift+Lock+LevelThree;
95	map[None] = Level1;
96	map[Shift] = Level2;
97	map[Lock]  = Level2;
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";
106    };
107
108    type "FOUR_LEVEL_SEMIALPHABETIC" {
109	modifiers = Shift+Lock+LevelThree;
110	map[None] = Level1;
111	map[Shift] = Level2;
112	map[Lock]  = Level2;
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";
123    };
124};
125
126// CapsLock acts as Shift with locking,
127// Shift does not cancel CapsLock.
128partial xkb_types "shift_nocancel" {
129    type "ALPHABETIC" {
130	modifiers = Shift+Lock;
131	map[Shift] = Level2;
132	map[Lock] = Level2;
133	map[Shift+Lock] = Level2;
134	level_name[Level1] = "Base";
135	level_name[Level2] = "Caps";
136    };
137
138    type "FOUR_LEVEL_ALPHABETIC" {
139	modifiers = Shift+Lock+LevelThree;
140	map[None] =  Level1;
141	map[Shift] = Level2;
142	map[Lock] =  Level2;
143	map[Shift+Lock] = Level2;
144	map[LevelThree] = Level3;
145	map[Shift+LevelThree] = Level4;
146	map[Lock+LevelThree] =  Level4;
147	map[Shift+Lock+LevelThree] = Level4;
148	level_name[Level1] = "Base";
149	level_name[Level2] = "Shift";
150	level_name[Level3] = "Alt Base";
151	level_name[Level4] = "Shift Alt";
152    };
153
154    type "FOUR_LEVEL_SEMIALPHABETIC" {
155	modifiers = Shift+Lock+LevelThree;
156	map[None] =  Level1;
157	map[Shift] = Level2;
158	map[Lock] =  Level2;
159	map[Shift+Lock] = Level2;
160	map[LevelThree] = Level3;
161	map[Shift+LevelThree] = Level4;
162	map[Lock+LevelThree] =  Level3;
163	map[Lock+Shift+LevelThree] = Level4;
164	preserve[Lock+LevelThree] = Lock;
165	preserve[Lock+Shift+LevelThree] = Lock;
166	level_name[Level1] = "Base";
167	level_name[Level2] = "Shift";
168	level_name[Level3] = "Alt Base";
169	level_name[Level4] = "Shift Alt";
170    };
171};
172