1
// APL Keyboard Layouts
4
// - The Sharp APL for Unix (SAX) layout
5
// - The IBM APL2 layout
6
// - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout
8
// Unicode APL table: http://aplwiki.com/UnicodeAplTable
9
// ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A)
10
// Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm
12
// Tim Nelson (this file's creator) says:
14
// This file doesn't deal with all the combining stuff -- I'm not an APL programmer,
15
// and am not quite sure what's needed here. However, it may be possible to get this
16
// working with dead keys and the like. Patches gratefully accepted.
18
// Some of the shift-key assignments may differ from the APL tradition. If
19
// that's not considered acceptable, it should be possible to remap the
20
// shift keys. I have striven, however, to ensure that the use of shift keys
21
// in these maps is at least self-consistent.
23
// I'm assuming that this will be used with another keyboard layout (ie. for
24
// your language), with a special shift key to use these maps.
26
partial alphanumeric_keys modifier_keys
27
xkb_symbols "common" {
30
key <AE01> { [ diaeresis ] };
31
key <AE02> { [ U00AF ] }; // ¯ -- Macron
32
key <AE03> { [ less ] };
33
key <AE04> { [ U2264 ] }; // ≤ -- Less-than Or Equal To
34
key <AE05> { [ equal ] };
35
key <AE06> { [ U2265 ] }; // ≥ -- Greater-than Or Equal To
36
key <AE07> { [ greater ] };
37
key <AE08> { [ U2260 ] }; // ≠ -- Not Equal To
38
key <AE09> { [ U2228 ] }; // ∨ -- Logical Or
39
key <AE10> { [ U2227 ] }; // ∧ -- Logical And
42
key <AD01> { [ question ] };
44
key <AD02> { [ U2375 ] }; // ⍵ -- APL Functional Symbol Omega
46
key <AD03> { [ U220A ] }; // ∊ -- Small Element Of
48
key <AD04> { [ U2374 ] }; // ⍴ -- APL Functional Symbol Rho
50
key <AD05> { [ asciitilde ] };
52
key <AD06> { [ U2191 ] }; // ↑ -- Upwards Arrow
54
key <AD07> { [ U2193 ] }; // ↓ -- Downwards Arrow
56
key <AD08> { [ U2373 ] }; // ⍳ -- APL Functional Symbol Iota
58
key <AD09> { [ U25CB ] }; // ○ -- White Circle
60
key <AD10> { [ U22C6 ] }; // ⋆ -- Should this be a plain asterisk, or the star operator???
62
key <AD11> { [ U2190 ] }; // ← -- Leftwards Arrow
65
key <AC01> { [ U237A ] }; // ⍺ -- APL Functional Symbol Alpha
67
key <AC02> { [ U2308 ] }; // ⌈ -- Left Ceiling
69
key <AC03> { [ U230A ] }; // ⌊ -- Left Floor
71
key <AC04> { [ underscore ] };
73
key <AC05> { [ U2207 ] }; // ∇ -- Nabla
75
key <AC06> { [ U2206 ] }; // ∆ -- Increment
77
key <AC07> { [ U2218 ] }; // ∘ -- Ring Operator
79
key <AC08> { [ apostrophe ] };
81
key <AC09> { [ U2395 ] }; // ⎕ -- APL Functional Symbol Quad
84
key <AB01> { [ U2282 ] }; // ⊂ -- Subset Of
86
key <AB02> { [ U2283 ] }; // ⊃ -- Superset Of
88
key <AB03> { [ U2229 ] }; // ∩ -- Intersection
90
key <AB04> { [ U222A ] }; // ∪ -- Union
92
key <AB05> { [ U22A5 ] }; // ⊥ -- Up Tack
94
key <AB06> { [ U22A4 ] }; // ⊤ -- Down Tack
96
key <AB07> { [ U007C ] }; // | -- Vertical Line
99
// Keys common to a number of keyboards that allow normal language usage alongside APL
100
partial alphanumeric_keys modifier_keys
101
xkb_symbols "unified" {
102
name[Group1]= "APL Keyboard Symbols: Unified Layout";
104
include "apl(common)"
107
key <TLDE> { [ U22C4 ] }; // ⋄ -- Diamond Operator
108
key <AE09> { [ NoSymbol, U2371 ] }; // ⍱ -- APL Functional Symbol Down Caret Tilde
109
key <AE10> { [ NoSymbol, U2372 ] }; // ⍲ -- APL Functional Symbol Up Caret Tilde
111
key <AE11> { [ U00D7 ] }; // × -- Multiplication Sign
113
key <AE12> { [ U00F7, U2339 ] }; // ÷ ⌹ -- Division Sign / APL Functional Symbol Quad Divide
116
key <AD12> { [ U2192 ] }; // → -- Rightwards Arrow
119
// Layout: http://www.wickensonline.co.uk/apl-unicomp.html
121
partial alphanumeric_keys modifier_keys
123
name[Group1]= "APL Keyboard Symbols: Sharp APL for Unix";
125
include "apl(unified)"
127
key <AE01> { [ NoSymbol, U00A1 ] }; // ¡ -- Inverted Exclamation Mark
128
key <AE04> { [ NoSymbol, cent ] };
129
key <AE08> { [ NoSymbol, U2342 ] }; // ⍂ -- APL Functional Symbol Quad Backslash
131
key <AE11> { [ NoSymbol, U2261 ] }; // ≡ -- Identical To
134
key <AD01> { [ NoSymbol, U00BF ] }; // ¿ -- Inverted Question Mark
136
key <AD02> { [ NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile
138
key <AD03> { [ NoSymbol, U2377 ] }; // ⍷ -- APL Functional Symbol Epsilon Underbar
140
key <AD05> { [ NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash
142
key <AD08> { [ NoSymbol, U2378 ] }; // ⍸ -- APL Functional Symbol Iota Underbar
144
key <AD09> { [ NoSymbol, U2365 ] }; // ⍥ -- APL Functional Symbol Circle Diaeresis
146
key <AD10> { [ NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star
149
key <AC01> { [ NoSymbol, U2296 ] }; // ⊖ -- Circled Minus
151
key <AC04> { [ NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde
153
key <AC05> { [ NoSymbol, U2352 ] }; // ∇ ⍒ -- APL Functional Symbol Del Stile
155
key <AC06> { [ NoSymbol, U234B ] }; // ∆ ⍋ -- APL Functional Symbol Delta Stile
157
key <AC07> { [ NoSymbol, U2364 ] }; // ⍤ -- APL Functional Symbol Jot Diaeresis
159
key <AC08> { [ NoSymbol, U233B ] }; // ⌻
161
key <AC09> { [ NoSymbol, U235E ] }; // ⍞ -- APL Functional Symbol Quote Quad
163
key <AC10> { [ U22A2 ] }; // ⊢ -- Right Tack
165
key <AC11> { [ U22A3 ] }; // ⊣ -- Left Tack
168
key <AB03> { [ NoSymbol, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot
170
key <AB05> { [ NoSymbol, U234E ] }; // ⍎ -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack")
172
key <AB06> { [ NoSymbol, U2355 ] }; // ⍕ -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack")
174
key <AB07> { [ NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam
176
key <AB08> { [ U235E, U236A ] }; // ⍞ ⍪ -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar
178
key <AB09> { [ U234E, U2359 ] }; // ⍎ ⍙ -- [See B key] / APL Functional Symbol Delta Underbar
180
key <AB10> { [ U2355, U233F ] }; // ⍕ ⌿ -- [See N key] / APL Functional Symbol Slash Bar
182
key <BKSL> { [ U235D, U2340 ] }; // ⍝ ⍀ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar
185
// Layout: http://www.wickensonline.co.uk/apl-unicomp.html
186
partial alphanumeric_keys modifier_keys
188
name[Group1]= "APL Keyboard Symbols: IBM APL2";
190
include "apl(common)"
192
// The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything
195
key <TLDE> { [ NoSymbol, U233B, U2342 ] }; // ⌻ ⍂ --
196
key <AE01> { [ NoSymbol, NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam
197
key <AE02> { [ NoSymbol, NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde
198
key <AE03> { [ NoSymbol, NoSymbol, U2353 ] }; // ⍒ -- APL Functional Symbol Del Stile
199
key <AE04> { [ NoSymbol, NoSymbol, U234B ] }; // ⍋ -- APL Functional Symbol Delta Stile
200
key <AE05> { [ NoSymbol, NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile
201
key <AE06> { [ NoSymbol, NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash
202
key <AE07> { [ NoSymbol, NoSymbol, U2296 ] }; // ⊖ -- Circled Minus
203
key <AE08> { [ NoSymbol, NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star
204
key <AE09> { [ NoSymbol, NoSymbol, U2371 ] }; // ⍱ -- APL Functional Symbol Down Caret Tilde
205
key <AE10> { [ NoSymbol, NoSymbol, U2372 ] }; // ⍲ -- APL Functional Symbol Up Caret Tilde
207
key <AE11> { [ plus, minus, exclam ] };
209
key <AE12> { [ U00D7, U00F7, U2339 ] }; // × ÷ ⌹ -- Multiplication Sign / Division Sign / APL Functional Symbol Quad Divide
212
key <AD11> { [ NoSymbol, U2192, U235E ] }; // (←) → ⍞ -- Rightwards Arrow / APL Functional Symbol Quote Quad
214
key <AD12> { [ U2337, U2378, U2359 ] }; // ⌷ ⍸ ⍙ -- APL Functional Symbol Squish Quad / APL Functional Symbol Iota Underbar / APL Functional Symbol Delta Underbar
217
key <AC10> { [ bracketleft, parenleft, U234E ] }; // ⍎ -- [See B key in SAX layout]
219
key <AC11> { [ bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout]
222
key <AB08> { [ comma, semicolon, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot
224
key <AB09> { [ period, colon, U2340 ] }; // ⍀ -- APL Functional Symbol Backslash Bar
226
key <AB10> { [ slash, backslash, U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar
228
key <BKSL> { [ U2261, U2377, U2364 ] }; // ≡ ⍷ ⍤ -- Identical To / APL Functional Symbol Epsilon Underbar / APL Functional Symbol Jot Diaeresis
231
partial alphanumeric_keys modifier_keys
232
xkb_symbols "aplplusII" {
233
name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II";
238
key <TLDE> { [ dollar, U22C4, U236A ] }; // ⋄ ⍪ -- Diamond Operator / APL Functional Symbol Comma Bar
239
key <AE01> { [ NoSymbol, NoSymbol, U2261 ] }; // ≡ -- Identical To
242
key <AD11> { [ U2190, NoSymbol, U235E ] }; // ← ⍞ -- Leftwards Arrow / APL Functional Symbol Quote Quad
244
key <AD12> { [ U2192, NoSymbol, U236C ] }; // → ⍬ -- Rightwards Arrow / APL Functional Symbol Zilde
247
key <AC10> { [ bracketleft, parenleft, U234E ] }; // ⍎ -- [See B key in SAX layout]
249
key <AC11> { [ bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout]
251
key <BKSL> { [ U22A3, U22A2, U2359 ] }; // ⊣ ⊢ ⍙ -- Left Tack / Right Tack / APL Functional Symbol Delta Underbar
255
// MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts
256
// I didn't do the old-style MicroAPL layout; patches gratefully accepted
257
partial alphanumeric_keys modifier_keys
259
name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout";
261
include "apl(unified)"
264
key <TLDE> { [ NoSymbol, U235E ] }; // ⍞ -- APL Functional Symbol Quote Quad
265
key <AE01> { [ NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam
266
key <AE02> { [ NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde
267
key <AE03> { [ NoSymbol, U2353 ] }; // ⍒ -- APL Functional Symbol Del Stile
268
key <AE04> { [ NoSymbol, U234B ] }; // ⍋ -- APL Functional Symbol Delta Stile
269
key <AE05> { [ NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile
270
key <AE06> { [ NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash
271
key <AE07> { [ NoSymbol, U2296 ] }; // ⊖ -- Circled Minus
272
key <AE08> { [ NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star
274
key <AE11> { [ NoSymbol, exclam ] };
277
key <AD11> { [ NoSymbol, U2347 ] }; // ⍇ -- Box With Left Arrow
279
key <AD12> { [ NoSymbol, U2348 ] }; // ⍈ -- Box With Right Arrow
282
key <AC10> { [ U234E, U2261 ] }; // ⍎ ≡ -- [See B key in SAX layout] / Identical To
284
key <AC11> { [ U2355, U2262 ] }; // ⍕ ≢ -- [See N key in SAX layout] / Not Identical To
287
key <AB08> { [ U235D, U236A ] }; // ⍝ ⍪ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar
289
key <AB09> { [ U2340, U2364 ] }; // ⍀ ⍤ -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis
291
key <AB10> { [ U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar
293
key <BKSL> { [ U22A3, U22A3 ] }; // ⊣ ⊢ -- Left Tack / Right Tack