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