apl revision 1.1 1 // EXTRAS:
2 //
3 // APL Keyboard Layouts
4
5 // This file supports:
6 // - The Sharp APL for Unix (SAX) layout
7 // - The IBM APL2 layout
8 // - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout
9
10 // Unicode APL table: http://aplwiki.com/UnicodeAplTable
11 // ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A)
12 // Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm
13
14 // Tim Nelson (this file's creator) says:
15
16 // This file doesn't deal with all the combining stuff -- I'm not an APL programmer,
17 // and am not quite sure what's needed here. However, it may be possible to get this
18 // working with dead keys and the like. Patches gratefully accepted.
19
20 // Some of the shift-key assignments may differ from the APL tradition. If
21 // that's not considered acceptable, it should be possible to remap the
22 // shift keys. I have striven, however, to ensure that the use of shift keys
23 // in these maps is at least self-consistent.
24
25 // I'm assuming that this will be used with another keyboard layout (ie. for
26 // your language), with a special shift key to use these maps.
27
28 partial alphanumeric_keys modifier_keys
29 xkb_symbols "common" {
30 name[Group1]= "APL";
31
32 key <AE01> { [ diaeresis ] };
33 key <AE02> { [ U00AF ] }; // -- Macron
34 key <AE03> { [ less ] };
35 key <AE04> { [ U2264 ] }; // -- Less-than Or Equal To
36 key <AE05> { [ equal ] };
37 key <AE06> { [ U2265 ] }; // -- Greater-than Or Equal To
38 key <AE07> { [ greater ] };
39 key <AE08> { [ U2260 ] }; // -- Not Equal To
40 key <AE09> { [ U2228 ] }; // -- Logical Or
41 key <AE10> { [ U2227 ] }; // -- Logical And
42
43 // Q
44 key <AD01> { [ question ] };
45 // W
46 key <AD02> { [ U2375 ] }; // -- APL Functional Symbol Omega
47 // E
48 key <AD03> { [ U220A ] }; // -- Small Element Of
49 // R
50 key <AD04> { [ U2374 ] }; // -- APL Functional Symbol Rho
51 // T
52 key <AD05> { [ asciitilde ] };
53 // Y
54 key <AD06> { [ U2191 ] }; // -- Upwards Arrow
55 // U
56 key <AD07> { [ U2193 ] }; // -- Downwards Arrow
57 // I
58 key <AD08> { [ U2373 ] }; // -- APL Functional Symbol Iota
59 // O
60 key <AD09> { [ U25CB ] }; // -- White Circle
61 // P
62 key <AD10> { [ U22C6 ] }; // -- Should this be a plain asterisk, or the star operator???
63 // [
64 key <AD11> { [ U2190 ] }; // -- Leftwards Arrow
65
66 // A
67 key <AC01> { [ U237A ] }; // -- APL Functional Symbol Alpha
68 // S
69 key <AC02> { [ U2308 ] }; // -- Left Ceiling
70 // D
71 key <AC03> { [ U230A ] }; // -- Left Floor
72 // F
73 key <AC04> { [ underscore ] };
74 // G
75 key <AC05> { [ U2207 ] }; // -- Nabla
76 // H
77 key <AC06> { [ U2206 ] }; // -- Increment
78 // J
79 key <AC07> { [ U2218 ] }; // -- Ring Operator
80 // K
81 key <AC08> { [ apostrophe ] };
82 // L
83 key <AC09> { [ U2395 ] }; // -- APL Functional Symbol Quad
84
85 // Z
86 key <AB01> { [ U2282 ] }; // -- Subset Of
87 // X
88 key <AB02> { [ U2283 ] }; // -- Superset Of
89 // C
90 key <AB03> { [ U2229 ] }; // -- Intersection
91 // V
92 key <AB04> { [ U222A ] }; // -- Union
93 // B
94 key <AB05> { [ U22A5 ] }; // -- Up Tack
95 // N
96 key <AB06> { [ U22A4 ] }; // -- Down Tack
97 // M
98 key <AB07> { [ U007C ] }; // | -- Vertical Line
99 };
100
101 // Keys common to a number of keyboards that allow normal language usage alongside APL
102 partial alphanumeric_keys modifier_keys
103 xkb_symbols "unified" {
104 name[Group1]= "APL Keyboard Symbols: Unified Layout";
105
106 include "apl(common)"
107
108 // `
109 key <TLDE> { [ U22C4 ] }; // -- Diamond Operator
110 key <AE09> { [ NoSymbol, U2371 ] }; // -- APL Functional Symbol Down Caret Tilde
111 key <AE10> { [ NoSymbol, U2372 ] }; // -- APL Functional Symbol Up Caret Tilde
112 // -
113 key <AE11> { [ U00D7 ] }; // -- Multiplication Sign
114 // =
115 key <AE12> { [ U00F7, U2339 ] }; // -- Division Sign / APL Functional Symbol Quad Divide
116
117 // ]
118 key <AD12> { [ U2192 ] }; // -- Rightwards Arrow
119 };
120
121 // Layout: http://www.wickensonline.co.uk/apl-unicomp.html
122 default
123 partial alphanumeric_keys modifier_keys
124 xkb_symbols "sax" {
125 name[Group1]= "APL Keyboard Symbols";
126
127 include "apl(unified)"
128
129 key <AE01> { [ NoSymbol, U00A1 ] }; // -- Inverted Exclamation Mark
130 key <AE04> { [ NoSymbol, cent ] };
131 key <AE08> { [ NoSymbol, U2342 ] }; // -- APL Functional Symbol Quad Backslash
132 // -
133 key <AE11> { [ NoSymbol, U2261 ] }; // -- Identical To
134
135 // Q
136 key <AD01> { [ NoSymbol, U00BF ] }; // -- Inverted Question Mark
137 // W
138 key <AD02> { [ NoSymbol, U233D ] }; // -- APL Functional Symbol Circle Stile
139 // E
140 key <AD03> { [ NoSymbol, U2377 ] }; // -- APL Functional Symbol Epsilon Underbar
141 // T
142 key <AD05> { [ NoSymbol, U2349 ] }; // -- APL Functional Symbol Circle Backslash
143 // I
144 key <AD08> { [ NoSymbol, U2378 ] }; // -- APL Functional Symbol Iota Underbar
145 // O
146 key <AD09> { [ NoSymbol, U2365 ] }; // -- APL Functional Symbol Circle Diaeresis
147 // P
148 key <AD10> { [ NoSymbol, U235F ] }; // -- APL Functional Symbol Circle Star
149
150 // A
151 key <AC01> { [ NoSymbol, U2296 ] }; // -- Circled Minus
152 // F
153 key <AC04> { [ NoSymbol, U236B ] }; // -- APL Functional Symbol Del Tilde
154 // G
155 key <AC05> { [ NoSymbol, U2352 ] }; // -- APL Functional Symbol Del Stile
156 // H
157 key <AC06> { [ NoSymbol, U234B ] }; // -- APL Functional Symbol Delta Stile
158 // J
159 key <AC07> { [ NoSymbol, U2364 ] }; // -- APL Functional Symbol Jot Diaeresis
160 // K
161 key <AC08> { [ NoSymbol, U233B ] }; //
162 // L
163 key <AC09> { [ NoSymbol, U235E ] }; // -- APL Functional Symbol Quote Quad
164 // ;
165 key <AC10> { [ U22A2 ] }; // -- Right Tack
166 // '
167 key <AC11> { [ U22A3 ] }; // -- Left Tack
168
169 // C
170 key <AB03> { [ NoSymbol, U235D ] }; // -- APL Functional Symbol Up Shoe Jot
171 // B
172 key <AB05> { [ NoSymbol, U234E ] }; // -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack")
173 // N
174 key <AB06> { [ NoSymbol, U2355 ] }; // -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack")
175 // M
176 key <AB07> { [ NoSymbol, U2336 ] }; // -- APL Functional Symbol I-Beam
177 // ,
178 key <AB08> { [ U235E, U236A ] }; // -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar
179 // .
180 key <AB09> { [ U234E, U2359 ] }; // -- [See B key] / APL Functional Symbol Delta Underbar
181 // /
182 key <AB10> { [ U2355, U233F ] }; // -- [See N key] / APL Functional Symbol Slash Bar
183
184 key <BKSL> { [ U235D, U2340 ] }; // -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar
185 };
186
187 // Layout: http://www.wickensonline.co.uk/apl-unicomp.html
188 partial alphanumeric_keys modifier_keys
189 xkb_symbols "apl2" {
190 name[Group1]= "APL Keyboard Symbols: IBM APL2";
191
192 include "apl(common)"
193
194 // The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything
195
196 // `
197 key <TLDE> { [ NoSymbol, U233B, U2342 ] }; // --
198 key <AE01> { [ NoSymbol, NoSymbol, U2336 ] }; // -- APL Functional Symbol I-Beam
199 key <AE02> { [ NoSymbol, NoSymbol, U236B ] }; // -- APL Functional Symbol Del Tilde
200 key <AE03> { [ NoSymbol, NoSymbol, U2353 ] }; // -- APL Functional Symbol Del Stile
201 key <AE04> { [ NoSymbol, NoSymbol, U234B ] }; // -- APL Functional Symbol Delta Stile
202 key <AE05> { [ NoSymbol, NoSymbol, U233D ] }; // -- APL Functional Symbol Circle Stile
203 key <AE06> { [ NoSymbol, NoSymbol, U2349 ] }; // -- APL Functional Symbol Circle Backslash
204 key <AE07> { [ NoSymbol, NoSymbol, U2296 ] }; // -- Circled Minus
205 key <AE08> { [ NoSymbol, NoSymbol, U235F ] }; // -- APL Functional Symbol Circle Star
206 key <AE09> { [ NoSymbol, NoSymbol, U2371 ] }; // -- APL Functional Symbol Down Caret Tilde
207 key <AE10> { [ NoSymbol, NoSymbol, U2372 ] }; // -- APL Functional Symbol Up Caret Tilde
208 // -
209 key <AE11> { [ plus, minus, exclam ] };
210 // =
211 key <AE12> { [ U00D7, U00F7, U2339 ] }; // -- Multiplication Sign / Division Sign / APL Functional Symbol Quad Divide
212
213 // [
214 key <AD11> { [ NoSymbol, U2192, U235E ] }; // () -- Rightwards Arrow / APL Functional Symbol Quote Quad
215 // ]
216 key <AD12> { [ U2337, U2378, U2359 ] }; // -- APL Functional Symbol Squish Quad / APL Functional Symbol Iota Underbar / APL Functional Symbol Delta Underbar
217
218 // ;
219 key <AC10> { [ bracketleft, parenleft, U234E ] }; // -- [See B key in SAX layout]
220 // '
221 key <AC11> { [ bracketright, parenright, U2355 ] }; // -- [See N key in SAX layout]
222
223 // ,
224 key <AB08> { [ comma, semicolon, U235D ] }; // -- APL Functional Symbol Up Shoe Jot
225 // .
226 key <AB09> { [ period, colon, U2340 ] }; // -- APL Functional Symbol Backslash Bar
227 // /
228 key <AB10> { [ slash, backslash, U233F ] }; // -- APL Functional Symbol Slash Bar
229
230 key <BKSL> { [ U2261, U2377, U2364 ] }; // -- Identical To / APL Functional Symbol Epsilon Underbar / APL Functional Symbol Jot Diaeresis
231 };
232
233 partial alphanumeric_keys modifier_keys
234 xkb_symbols "aplplusII" {
235 name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II";
236
237 include "apl(apl2)"
238
239 // `
240 key <TLDE> { [ dollar, U22C4, U236A ] }; // -- Diamond Operator / APL Functional Symbol Comma Bar
241 key <AE01> { [ NoSymbol, NoSymbol, U2261 ] }; // -- Identical To
242
243 // [
244 key <AD11> { [ U2190, NoSymbol, U235E ] }; // -- Leftwards Arrow / APL Functional Symbol Quote Quad
245 // ]
246 key <AD12> { [ U2192, NoSymbol, U236C ] }; // -- Rightwards Arrow / APL Functional Symbol Zilde
247
248 // ;
249 key <AC10> { [ bracketleft, parenleft, U234E ] }; // -- [See B key in SAX layout]
250 // '
251 key <AC11> { [ bracketright, parenright, U2355 ] }; // -- [See N key in SAX layout]
252
253 key <BKSL> { [ U22A3, U22A2, U2359 ] }; // -- Left Tack / Right Tack / APL Functional Symbol Delta Underbar
254 };
255
256
257 // MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts
258 // I didn't do the old-style MicroAPL layout; patches gratefully accepted
259 partial alphanumeric_keys modifier_keys
260 xkb_symbols "aplx" {
261 name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout";
262
263 include "apl(unified)"
264
265 // `
266 key <TLDE> { [ NoSymbol, U235E ] }; // -- APL Functional Symbol Quote Quad
267 key <AE01> { [ NoSymbol, U2336 ] }; // -- APL Functional Symbol I-Beam
268 key <AE02> { [ NoSymbol, U236B ] }; // -- APL Functional Symbol Del Tilde
269 key <AE03> { [ NoSymbol, U2353 ] }; // -- APL Functional Symbol Del Stile
270 key <AE04> { [ NoSymbol, U234B ] }; // -- APL Functional Symbol Delta Stile
271 key <AE05> { [ NoSymbol, U233D ] }; // -- APL Functional Symbol Circle Stile
272 key <AE06> { [ NoSymbol, U2349 ] }; // -- APL Functional Symbol Circle Backslash
273 key <AE07> { [ NoSymbol, U2296 ] }; // -- Circled Minus
274 key <AE08> { [ NoSymbol, U235F ] }; // -- APL Functional Symbol Circle Star
275 // -
276 key <AE11> { [ NoSymbol, exclam ] };
277
278 // [
279 key <AD11> { [ NoSymbol, U2347 ] }; // -- Box With Left Arrow
280 // ]
281 key <AD12> { [ NoSymbol, U2348 ] }; // -- Box With Right Arrow
282
283 // ;
284 key <AC10> { [ U234E, U2261 ] }; // -- [See B key in SAX layout] / Identical To
285 // '
286 key <AC11> { [ U2355, U2262 ] }; // -- [See N key in SAX layout] / Not Identical To
287
288 // ,
289 key <AB08> { [ U235D, U236A ] }; // -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar
290 // .
291 key <AB09> { [ U2340, U2364 ] }; // -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis
292 // /
293 key <AB10> { [ U233F ] }; // -- APL Functional Symbol Slash Bar
294
295 key <BKSL> { [ U22A3, U22A3 ] }; // -- Left Tack / Right Tack
296 };
297