added in(mal_enhanced)
[xorg/xkeyboard-config] / symbols / apl
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: Sharp APL for Unix";
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 };