Remove RCS tags
[xorg/xkeyboard-config] / symbols / extras / apl
1 // APL Keyboard Layouts
2
3 // This file supports:
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
7
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
11
12 // Tim Nelson (this file's creator) says:
13
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.  
17
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.  
22
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.  
25
26 partial alphanumeric_keys modifier_keys 
27 xkb_symbols "common" {
28         name[Group1]= "APL";
29
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
40
41         // Q
42         key <AD01> { [  question        ] };
43         // W
44         key <AD02> { [  U2375           ] }; // ⍵ -- APL Functional Symbol Omega
45         // E
46         key <AD03> { [  U220A           ] }; // ∊ -- Small Element Of
47         // R
48         key <AD04> { [  U2374           ] }; // ⍴ -- APL Functional Symbol Rho
49         // T
50         key <AD05> { [  asciitilde              ] };
51         // Y
52         key <AD06> { [  U2191           ] }; // ↑ -- Upwards Arrow
53         // U
54         key <AD07> { [  U2193           ] }; // ↓ -- Downwards Arrow
55         // I
56         key <AD08> { [  U2373   ] }; // ⍳ -- APL Functional Symbol Iota
57         // O
58         key <AD09> { [  U25CB   ] }; // ○ -- White Circle
59         // P
60         key <AD10> { [  U22C6   ] }; // ⋆ -- Should this be a plain asterisk, or the star operator???
61         // [
62         key <AD11> { [  U2190   ] }; // ← -- Leftwards Arrow
63
64         // A
65         key <AC01> { [  U237A   ] }; // ⍺ -- APL Functional Symbol Alpha
66         // S
67         key <AC02> { [  U2308   ] }; // ⌈ -- Left Ceiling
68         // D
69         key <AC03> { [  U230A   ] }; // ⌊ -- Left Floor
70         // F
71         key <AC04> { [  underscore      ] };
72         // G
73         key <AC05> { [  U2207   ] }; // ∇ -- Nabla
74         // H
75         key <AC06> { [  U2206   ] }; // ∆ -- Increment
76         // J
77         key <AC07> { [  U2218   ] }; // ∘ -- Ring Operator
78         // K
79         key <AC08> { [  apostrophe ] };
80         // L
81         key <AC09> { [  U2395   ] }; // ⎕ -- APL Functional Symbol Quad
82
83         // Z
84         key <AB01> { [  U2282   ] }; // ⊂ -- Subset Of
85         // X
86         key <AB02> { [  U2283   ] }; // ⊃ -- Superset Of
87         // C
88         key <AB03> { [  U2229   ] }; // ∩ -- Intersection
89         // V
90         key <AB04> { [  U222A   ] }; // ∪ -- Union
91         // B
92         key <AB05> { [  U22A5   ] }; // ⊥ -- Up Tack
93         // N
94         key <AB06> { [  U22A4   ] }; // ⊤ -- Down Tack
95         // M
96         key <AB07> { [  U007C   ] }; // | -- Vertical Line
97 };
98
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";
103
104         include "apl(common)"
105
106         // `
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
110         // -
111         key <AE11> { [  U00D7   ] }; // × -- Multiplication Sign
112         // =
113         key <AE12> { [  U00F7,  U2339   ] }; // ÷ ⌹ -- Division Sign / APL Functional Symbol Quad Divide
114
115         // ]
116         key <AD12> { [  U2192           ] }; // → -- Rightwards Arrow
117 };
118
119 // Layout: http://www.wickensonline.co.uk/apl-unicomp.html
120 default
121 partial alphanumeric_keys modifier_keys 
122 xkb_symbols "sax" {
123         name[Group1]= "APL Keyboard Symbols: Sharp APL for Unix";
124
125         include "apl(unified)"
126
127         key <AE01> { [  NoSymbol,       U00A1   ] }; // ¡ -- Inverted Exclamation Mark
128         key <AE04> { [  NoSymbol,       cent    ] };
129         key <AE08> { [  NoSymbol,       U2342   ] }; // ⍂ -- APL Functional Symbol Quad Backslash
130         // -
131         key <AE11> { [  NoSymbol,       U2261   ] }; // ≡ -- Identical To
132
133         // Q
134         key <AD01> { [  NoSymbol,       U00BF   ] }; // ¿ -- Inverted Question Mark
135         // W
136         key <AD02> { [  NoSymbol,       U233D   ] }; // ⌽ -- APL Functional Symbol Circle Stile
137         // E
138         key <AD03> { [  NoSymbol,       U2377   ] }; // ⍷ -- APL Functional Symbol Epsilon Underbar
139         // T
140         key <AD05> { [  NoSymbol,       U2349   ] }; // ⍉ -- APL Functional Symbol Circle Backslash
141         // I
142         key <AD08> { [  NoSymbol,       U2378   ] }; // ⍸ -- APL Functional Symbol Iota Underbar
143         // O
144         key <AD09> { [  NoSymbol,       U2365   ] }; // ⍥ -- APL Functional Symbol Circle Diaeresis
145         // P
146         key <AD10> { [  NoSymbol,       U235F   ] }; // ⍟ -- APL Functional Symbol Circle Star
147
148         // A
149         key <AC01> { [  NoSymbol,       U2296   ] }; // ⊖ -- Circled Minus
150         // F
151         key <AC04> { [  NoSymbol,       U236B   ] }; // ⍫ -- APL Functional Symbol Del Tilde
152         // G
153         key <AC05> { [  NoSymbol,       U2352   ] }; // ∇ ⍒ -- APL Functional Symbol Del Stile
154         // H
155         key <AC06> { [  NoSymbol,       U234B   ] }; // ∆ ⍋ -- APL Functional Symbol Delta Stile
156         // J
157         key <AC07> { [  NoSymbol,       U2364   ] }; // ⍤ -- APL Functional Symbol Jot Diaeresis
158         // K
159         key <AC08> { [  NoSymbol,       U233B   ] }; // ⌻
160         // L
161         key <AC09> { [  NoSymbol,       U235E   ] }; // ⍞ -- APL Functional Symbol Quote Quad
162         // ;
163         key <AC10> { [  U22A2   ] }; // ⊢ -- Right Tack
164         // '
165         key <AC11> { [  U22A3   ] }; // ⊣ -- Left Tack
166
167         // C
168         key <AB03> { [  NoSymbol,       U235D   ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot
169         // B
170         key <AB05> { [  NoSymbol,       U234E   ] }; // ⍎ -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack")
171         // N
172         key <AB06> { [  NoSymbol,       U2355   ] }; // ⍕ -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack")
173         // M
174         key <AB07> { [  NoSymbol,       U2336   ] }; // ⌶ -- APL Functional Symbol I-Beam
175         // ,
176         key <AB08> { [  U235E,  U236A   ] }; // ⍞ ⍪ -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar
177         // .
178         key <AB09> { [  U234E,  U2359   ] }; // ⍎ ⍙ -- [See B key] / APL Functional Symbol Delta Underbar
179         // /
180         key <AB10> { [  U2355,  U233F   ] }; // ⍕ ⌿ -- [See N key] / APL Functional Symbol Slash Bar
181
182         key <BKSL> { [  U235D,  U2340   ] }; // ⍝ ⍀ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar
183 };
184
185 // Layout: http://www.wickensonline.co.uk/apl-unicomp.html
186 partial alphanumeric_keys modifier_keys 
187 xkb_symbols "apl2" {
188         name[Group1]= "APL Keyboard Symbols: IBM APL2";
189
190         include "apl(common)"
191
192         // The first column is NoSymbol because it inherits.  The second is NoSymbol because those keys don't do anything
193
194         // `
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
206         // -
207         key <AE11> { [  plus,   minus,  exclam  ] };
208         // =
209         key <AE12> { [  U00D7,  U00F7,  U2339   ] }; // × ÷ ⌹ -- Multiplication Sign / Division Sign / APL Functional Symbol Quad Divide
210
211         // [
212         key <AD11> { [  NoSymbol,       U2192,  U235E   ] }; // (←) → ⍞ -- Rightwards Arrow / APL Functional Symbol Quote Quad
213         // ]
214         key <AD12> { [  U2337,  U2378,  U2359   ] }; // ⌷ ⍸ ⍙ -- APL Functional Symbol Squish Quad / APL Functional Symbol Iota Underbar / APL Functional Symbol Delta Underbar
215
216         // ;
217         key <AC10> { [  bracketleft, parenleft, U234E   ] }; // ⍎ -- [See B key in SAX layout]
218         // '
219         key <AC11> { [  bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout] 
220
221         // ,
222         key <AB08> { [  comma,  semicolon, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot
223         // .
224         key <AB09> { [  period, colon,  U2340   ] }; // ⍀ -- APL Functional Symbol Backslash Bar
225         // /
226         key <AB10> { [  slash,  backslash, U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar
227
228         key <BKSL> { [  U2261,  U2377, U2364    ] }; // ≡ ⍷ ⍤ -- Identical To / APL Functional Symbol Epsilon Underbar / APL Functional Symbol Jot Diaeresis
229 };
230
231 partial alphanumeric_keys modifier_keys 
232 xkb_symbols "aplplusII" {
233         name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II";
234
235         include "apl(apl2)"
236
237         // `
238         key <TLDE> { [  dollar, U22C4,  U236A   ] }; // ⋄ ⍪ -- Diamond Operator / APL Functional Symbol Comma Bar
239         key <AE01> { [  NoSymbol, NoSymbol, U2261       ] }; // ≡ -- Identical To
240
241         // [
242         key <AD11> { [  U2190,  NoSymbol,       U235E   ] }; // ← ⍞ -- Leftwards Arrow / APL Functional Symbol Quote Quad
243         // ]
244         key <AD12> { [  U2192,  NoSymbol,       U236C   ] }; // → ⍬ -- Rightwards Arrow / APL Functional Symbol Zilde
245
246         // ;
247         key <AC10> { [  bracketleft, parenleft, U234E   ] }; // ⍎ -- [See B key in SAX layout]
248         // '
249         key <AC11> { [  bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout] 
250
251         key <BKSL> { [  U22A3,  U22A2,  U2359   ] }; // ⊣ ⊢ ⍙ -- Left Tack / Right Tack / APL Functional Symbol Delta Underbar
252 };
253
254
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 
258 xkb_symbols "aplx" {
259         name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout";
260
261         include "apl(unified)"
262
263         // `
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
273         // -
274         key <AE11> { [  NoSymbol,       exclam ] };
275
276         // [
277         key <AD11> { [  NoSymbol,       U2347   ] }; // ⍇ -- Box With Left Arrow
278         // ]
279         key <AD12> { [  NoSymbol,       U2348   ] }; // ⍈ -- Box With Right Arrow
280
281         // ;
282         key <AC10> { [  U234E,  U2261   ] }; // ⍎ ≡ -- [See B key in SAX layout] / Identical To
283         // '
284         key <AC11> { [  U2355,  U2262   ] }; // ⍕ ≢ -- [See N key in SAX layout] / Not Identical To
285
286         // ,
287         key <AB08> { [  U235D,  U236A   ] }; // ⍝ ⍪ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar
288         // .
289         key <AB09> { [  U2340,  U2364   ] }; // ⍀ ⍤ -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis
290         // /
291         key <AB10> { [  U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar
292
293         key <BKSL> { [  U22A3,  U22A3   ] }; // ⊣ ⊢ -- Left Tack / Right Tack
294 };