apl revision bfd7cbc1
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 28partial alphanumeric_keys modifier_keys 29xkb_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 102partial alphanumeric_keys modifier_keys 103xkb_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 122default 123partial alphanumeric_keys modifier_keys 124xkb_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 188partial alphanumeric_keys modifier_keys 189xkb_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 233partial alphanumeric_keys modifier_keys 234xkb_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 259partial alphanumeric_keys modifier_keys 260xkb_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