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 // - The Dyalog APL layout - with additions for box drawing and commands 10 11 // Unicode APL table: http://aplwiki.com/UnicodeAplTable 12 // ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A) 13 // Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm 14 15 // Tim Nelson (this file's creator) says: 16 17 // This file doesn't deal with all the combining stuff -- I'm not an APL programmer, 18 // and am not quite sure what's needed here. However, it may be possible to get this 19 // working with dead keys and the like. Patches gratefully accepted. 20 // [Geoff Streeter: What has been done to is to support all of the APL overstrikes in the compose table] 21 22 // Some of the shift-key assignments may differ from the APL tradition. If 23 // that's not considered acceptable, it should be possible to remap the 24 // shift keys. I have striven, however, to ensure that the use of shift keys 25 // in these maps is at least self-consistent. 26 27 // I'm assuming that this will be used with another keyboard layout (ie. for 28 // your language), with a special shift key to use these maps. 29 30 // 2018-07-02 added some codes to the Unicode Private Use page. 31 // 2017-02-27 changed to , added 32 // 2012-09-26 changed "overbar" to macron which fixed some strangeness in xterm 33 34 // 2011-12-22 Geoff Streeter: geoff (a] dyalog.com 35 // Added the Dyalog support. 36 // Corrected (what he thinks) are some errors. 37 // Resolving the confusion between APL's and Unicode's concept of Left and Right tacks. 38 // Unsure about some of the inheritance from APL2 into APLPLUS. Patches welcome. 39 // Complied with freedesktop.org requirement that the keycodes be in sorted order. Which 40 // leads to the bottom to top (roughly) definitions. 41 42 // default layout seems to have to be the first one. Choosing the basic Dyalog layout is definitely 43 // better than using the "common" one. Choosing the complete Dyalog layout is not useful to non-Dyalog 44 // users. 45 46 default partial alphanumeric_keys 47 xkb_symbols "basic" { 48 49 include "apl(dyalog_base)" // forward reference to a good APL keyboard without Dyalogs extras 50 51 name[Group1]="APL"; 52 }; 53 54 // 55 // 56 // < = > 57 // 58 // 59 // ? ~ * 60 // 61 // 62 // _ ' 63 // 64 // 65 // | 66 // 67 // 68 // 69 // 70 71 hidden partial alphanumeric_keys 72 xkb_symbols "common" { 73 74 key <AB01> { [ U2282 ] }; // Z: -- Subset Of 75 key <AB02> { [ U2283 ] }; // X: -- Superset Of 76 key <AB03> { [ U2229 ] }; // C: -- Intersection 77 key <AB04> { [ U222A ] }; // V: -- Union 78 key <AB05> { [ U22A5 ] }; // B: -- Up Tack 79 key <AB06> { [ U22A4 ] }; // N: -- Down Tack 80 key <AB07> { [ U007C ] }; // M: | -- Vertical Line 81 82 key <AC01> { [ U237A ] }; // A: -- APL Functional Symbol Alpha 83 key <AC02> { [ U2308 ] }; // S: -- Left Ceiling 84 key <AC03> { [ U230A ] }; // D: -- Left Floor 85 key <AC04> { [ underscore ] }; // F: 86 key <AC05> { [ U2207 ] }; // G: -- Nabla 87 key <AC06> { [ U2206 ] }; // H: -- Increment 88 key <AC07> { [ U2218 ] }; // J: -- Ring Operator 89 key <AC08> { [ apostrophe ] }; // K: 90 key <AC09> { [ U2395 ] }; // L: -- APL Functional Symbol Quad 91 92 key <AD01> { [ question ] }; // Q: 93 key <AD02> { [ U2375 ] }; // W: -- APL Functional Symbol Omega 94 key <AD03> { [ U220A ] }; // E: -- Small Element Of 95 key <AD04> { [ U2374 ] }; // R: -- APL Functional Symbol Rho 96 key <AD05> { [ asciitilde ] }; // T: 97 key <AD06> { [ U2191 ] }; // Y: -- Upwards Arrow 98 key <AD07> { [ U2193 ] }; // U: -- Downwards Arrow 99 key <AD08> { [ U2373 ] }; // I: -- APL Functional Symbol Iota 100 key <AD09> { [ U25CB ] }; // O: -- White Circle 101 key <AD10> { [ asterisk ] }; // P: * -- asterisk 102 key <AD11> { [ U2190 ] }; // [: -- Leftwards Arrow 103 104 key <AE01> { [ diaeresis ] }; 105 key <AE02> { [ macron ] }; // -- Macron 106 key <AE03> { [ less ] }; 107 key <AE04> { [ U2264 ] }; // -- Less-than Or Equal To 108 key <AE05> { [ equal ] }; 109 key <AE06> { [ U2265 ] }; // -- Greater-than Or Equal To 110 key <AE07> { [ greater ] }; 111 key <AE08> { [ U2260 ] }; // -- Not Equal To 112 key <AE09> { [ U2228 ] }; // -- Logical Or 113 key <AE10> { [ U2227 ] }; // -- Logical And 114 }; 115 116 // Keys common to a number of keyboards that allow normal language usage alongside APL 117 118 // 119 // 120 // < = > 121 // 122 // 123 // ? ~ * 124 // 125 // 126 // _ ' 127 // 128 // 129 // | 130 // 131 // 132 // 133 // 134 135 partial alphanumeric_keys 136 xkb_symbols "unified" { 137 138 include "apl(common)" 139 140 name[Group1]= "APL symbols (unified)"; 141 142 key <AD12> { [ U2192 ] }; // ]: -- Rightwards Arrow 143 key <AE09> { [ NoSymbol, U2371 ] }; // 9: -- APL Functional Symbol Down Caret Tilde 144 key <AE10> { [ NoSymbol, U2372 ] }; // 0: -- APL Functional Symbol Up Caret Tilde 145 key <AE11> { [ U00D7 ] }; // -: -- Multiplication Sign 146 key <AE12> { [ U00F7, U2339 ] }; // =: -- Division Sign / APL Functional Symbol Quad Divide 147 key <TLDE> { [ U22C4 ] }; // `: -- Diamond Operator 148 }; 149 150 // Layout: http://www.wickensonline.co.uk/apl-unicomp.html 151 152 // 153 // 154 // < = > 155 // 156 // 157 // ? ~ * 158 // 159 // 160 // _ ' 161 // 162 // 163 // | 164 // 165 // 166 // 167 // 168 169 partial alphanumeric_keys 170 xkb_symbols "sax" { 171 172 include "apl(unified)" 173 174 name[Group1]= "APL symbols (SAX, Sharp APL for Unix)"; 175 176 key <AB03> { [ NoSymbol, U235D ] }; // C: -- APL Functional Symbol Up Shoe Jot 177 key <AB05> { [ NoSymbol, U234E ] }; // B: -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack") 178 key <AB06> { [ NoSymbol, U2355 ] }; // N: -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack") 179 key <AB07> { [ NoSymbol, U2336 ] }; // M: -- APL Functional Symbol I-Beam 180 key <AB08> { [ U235E, U236A ] }; // ,: -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar 181 key <AB09> { [ U234E, U2359 ] }; // .: -- [See B key] / APL Functional Symbol Delta Underbar 182 key <AB10> { [ U2355, U233F ] }; // /: -- [See N key] / APL Functional Symbol Slash Bar 183 184 key <AC01> { [ NoSymbol, U2296 ] }; // A: -- Circled Minus 185 key <AC04> { [ NoSymbol, U236B ] }; // F: -- APL Functional Symbol Del Tilde 186 key <AC05> { [ NoSymbol, U2352 ] }; // G: -- APL Functional Symbol Del Stile 187 key <AC06> { [ NoSymbol, U234B ] }; // H: -- APL Functional Symbol Delta Stile 188 key <AC07> { [ NoSymbol, U2364 ] }; // J: -- APL Functional Symbol Jot Diaeresis 189 key <AC08> { [ NoSymbol, U233B ] }; // K: 190 key <AC09> { [ NoSymbol, U235E ] }; // L: -- APL Functional Symbol Quote Quad 191 key <AC10> { [ U22A2 ] }; // ;: -- Right Tack 192 key <AC11> { [ U22A3 ] }; // ': -- Left Tack 193 194 key <AD01> { [ NoSymbol, U00BF ] }; // Q: -- Inverted Question Mark 195 key <AD02> { [ NoSymbol, U233D ] }; // W: -- APL Functional Symbol Circle Stile 196 key <AD03> { [ NoSymbol, U2377 ] }; // E: -- APL Functional Symbol Epsilon Underbar 197 key <AD05> { [ NoSymbol, U2349 ] }; // T: -- APL Functional Symbol Circle Backslash 198 key <AD08> { [ NoSymbol, U2378 ] }; // I: -- APL Functional Symbol Iota Underbar 199 key <AD09> { [ NoSymbol, U2365 ] }; // O: -- APL Functional Symbol Circle Diaeresis 200 key <AD10> { [ NoSymbol, U235F ] }; // P: -- APL Functional Symbol Circle Star 201 key <AE01> { [ NoSymbol, U00A1 ] }; // 1: -- Inverted Exclamation Mark 202 key <AE04> { [ NoSymbol, cent ] }; // 4: 203 key <AE08> { [ NoSymbol, U2342 ] }; // 8: -- APL Functional Symbol Quad Backslash 204 key <AE11> { [ NoSymbol, U2261 ] }; // -: -- Identical To 205 206 key <BKSL> { [ U235D, U2340 ] }; // \: -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar 207 }; 208 209 // Layout: http://www.wickensonline.co.uk/apl-unicomp.html 210 211 // 212 // ! 213 // - 214 // < = > + 215 // 216 // 217 // 218 // ? ~ * 219 // 220 // 221 // ( ) 222 // _ ' [ ] 223 // 224 // 225 // ; : \ 226 // | , . / 227 // 228 // 229 // 230 // 231 232 partial alphanumeric_keys 233 xkb_symbols "apl2" { 234 235 include "apl(common)" 236 237 name[Group1]= "APL symbols (IBM APL2)"; 238 239 // The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything 240 // AFS - short for APL Functional Symbol 241 242 key <AB08> { [ comma, semicolon, U235D ] }; // ,: -- AFS Up Shoe Jot 243 key <AB09> { [ period, colon, U2340 ] }; // .: -- AFS Backslash Bar 244 key <AB10> { [ slash, backslash, U233F ] }; // /: -- AFS Slash Bar 245 246 key <AC10> { [ bracketleft, parenleft, U234E ] }; // ;: -- [See B key in SAX layout] 247 key <AC11> { [ bracketright, parenright, U2355 ] }; // ': -- [See N key in SAX layout] 248 249 key <AD11> { [ NoSymbol, U2192, U235E ] }; // [: () -- Rightwards Arrow / AFS Quote Quad 250 key <AD12> { [ U2337, U2378, U2359 ] }; // ]: -- AFS Squish Quad / AFS Iota Underbar / AFS Delta Underbar 251 252 key <AE01> { [ NoSymbol, NoSymbol, U2336 ] }; // 1: -- AFS I-Beam 253 key <AE02> { [ NoSymbol, NoSymbol, U236B ] }; // 2: -- AFS Del Tilde 254 key <AE03> { [ NoSymbol, NoSymbol, U2353 ] }; // 3: -- AFS Del Stile 255 key <AE04> { [ NoSymbol, NoSymbol, U234B ] }; // 4: -- AFS Delta Stile 256 key <AE05> { [ NoSymbol, NoSymbol, U233D ] }; // 5: -- AFS Circle Stile 257 key <AE06> { [ NoSymbol, NoSymbol, U2349 ] }; // 6: -- AFS Circle Backslash 258 key <AE07> { [ NoSymbol, NoSymbol, U2296 ] }; // 7: -- Circled Minus 259 key <AE08> { [ NoSymbol, NoSymbol, U235F ] }; // 8: -- AFS Circle Star 260 key <AE09> { [ NoSymbol, NoSymbol, U2371 ] }; // 9: -- AFS Down Caret Tilde 261 key <AE10> { [ NoSymbol, NoSymbol, U2372 ] }; // 0: -- AFS Up Caret Tilde 262 key <AE11> { [ plus, minus, exclam ] }; // -: 263 key <AE12> { [ U00D7, U00F7, U2339 ] }; // =: -- Multiplication Sign / Division Sign / AFS Quad Divide 264 265 key <BKSL> { [ U2261, U2377, U2364 ] }; // \: -- Identical To / AFS Epsilon Underbar / AFS Jot Diaeresis 266 267 key <TLDE> { [ NoSymbol, U233B, U2342 ] }; // `: -- 268 269 include "level3(ralt_switch)" 270 }; 271 272 // 273 // ! 274 // - 275 // $ < = > + 276 // 277 // 278 // 279 // ? ~ * 280 // 281 // 282 // ( ) 283 // _ ' [ ] 284 // 285 // 286 // ; : \ 287 // | , . / 288 // 289 // 290 // 291 // 292 293 partial alphanumeric_keys 294 xkb_symbols "aplplusII" { 295 296 include "apl(apl2)" 297 298 name[Group1]= "APL symbols (Manugistics APL*PLUS II)"; 299 300 // AFS is short for APL Functional Symbol 301 key <AC10> { [ bracketleft, parenleft, U234E ] }; // ;: -- [See B key in SAX layout] 302 key <AC11> { [ bracketright, parenright, U2355 ] }; // ': -- [See N key in SAX layout] 303 key <AD11> { [ U2190, NoSymbol, U235E ] }; // [: -- Leftwards Arrow / AFS Quote Quad 304 key <AD12> { [ U2192, NoSymbol, U236C ] }; // ]: -- Rightwards Arrow / AFS Zilde 305 key <AE01> { [ NoSymbol, NoSymbol, U2261 ] }; // 1: -- Identical To 306 key <BKSL> { [ U22A2, U22A3, U2359 ] }; // \: -- Left Tack / Right Tack / AFS Delta Underbar 307 key <TLDE> { [ dollar, U22C4, U236A ] }; // `: -- Diamond Operator / AFS Comma Bar 308 }; 309 310 311 // MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts 312 // I didn't do the old-style MicroAPL layout; patches gratefully accepted 313 314 // 315 // ! 316 // < = > 317 // 318 // 319 // ? ~ * 320 // 321 // 322 // _ ' 323 // 324 // 325 // | 326 // 327 // 328 // 329 // 330 331 partial alphanumeric_keys 332 xkb_symbols "aplx" { 333 334 include "apl(unified)" 335 336 name[Group1]= "APL symbols (APLX unified)"; 337 338 key <AB08> { [ U235D, U236A ] }; // ,: -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar 339 key <AB09> { [ U2340, U2364 ] }; // .: -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis 340 key <AB10> { [ U233F ] }; // /: -- APL Functional Symbol Slash Bar 341 342 key <AC10> { [ U234E, U2261 ] }; // ;: -- [See B key in SAX layout] / Identical To 343 key <AC11> { [ U2355, U2262 ] }; // ': -- [See N key in SAX layout] / Not Identical To 344 345 key <AD11> { [ NoSymbol, U2347 ] }; // [: -- Box With Left Arrow 346 key <AD12> { [ NoSymbol, U2348 ] }; // ]: -- Box With Right Arrow 347 348 key <AE01> { [ NoSymbol, U2336 ] }; // 1: -- APL Functional Symbol I-Beam 349 key <AE02> { [ NoSymbol, U236B ] }; // 2: -- APL Functional Symbol Del Tilde 350 key <AE03> { [ NoSymbol, U2353 ] }; // 3: -- APL Functional Symbol Del Stile 351 key <AE04> { [ NoSymbol, U234B ] }; // 4: -- APL Functional Symbol Delta Stile 352 key <AE05> { [ NoSymbol, U233D ] }; // 5: -- APL Functional Symbol Circle Stile 353 key <AE06> { [ NoSymbol, U2349 ] }; // 6: -- APL Functional Symbol Circle Backslash 354 key <AE07> { [ NoSymbol, U2296 ] }; // 7: -- Circled Minus 355 key <AE08> { [ NoSymbol, U235F ] }; // 8: -- APL Functional Symbol Circle Star 356 key <AE11> { [ NoSymbol, exclam ] }; // -: 357 358 key <BKSL> { [ U22A2, U22A3 ] }; // \: -- Right Tack / Left Tack 359 360 key <TLDE> { [ NoSymbol, U235E ] }; // `: -- APL Functional Symbol Quote Quad 361 }; 362 363 // APL language support for the Dyalog keyboard. 364 // Dyalog Ltd sell this keyboard with APL engravings. The current model is 365 // engraved on a Cherry G80. Base languages for US, UK and DK are availible. 366 367 // Geoff Streeter, Dyalog Ltd. 2007-09-03 368 // geoff (a] dyalog.com 369 // extended for APL special actions 2008-09-09 370 // add variant 2010-11-26 371 // made BKSL and LTGT keys the same to remove a compatibility issue with the UK physical keyboard 372 // add key (quad equals) 2013-03-12 373 // add currency 2014-05-23 374 // add parallel 2014-05-23 375 // add circle jot 2014-05-23 376 // add t diaeresis 2014-05-23 377 // add del diaerisis 2014-05-23 378 // add quad query 2014-05-23 379 // add dagger 2014-05-23 380 // correct spelling of key name LTGTLSGT 2016-05-26 381 // add enclose underbar 2017-02-27 382 // add alpha underbar 2019-03-22 383 // add omega underbar 2019-03-22 384 // change all "partial hidden" to "hidden partial" - seems to be a compiler change 385 386 // The intention is that this keyboard layout overlays a base keyboard that provides 387 // the alphabet and similar. If this keyboard is placed as the 2nd layout then it can 388 // be reached with a latching shift to increase group by one. 389 390 hidden partial alphanumeric_keys 391 xkb_symbols "dyalog_base" { 392 393 // 394 // ! 395 // < = > 396 // 397 // 398 // ? ~ * 399 // 400 // 401 // _ ' 402 // 403 // 404 // | 405 // 406 // 407 // 408 // 409 410 411 key <AB01> { [ U2282, U2286 ] }; // subset of, enclose if simple 412 key <AB02> { [ U2283 ] }; // superset of 413 key <AB03> { [ U2229 ] }; // intersection 414 key <AB04> { [ U222A ] }; // union 415 key <AB05> { [ U22a5, U236d ] }; // up tack, stile tide 416 key <AB06> { [ U22a4, U2361 ] }; // down tack, down tack diaeresis 417 key <AB07> { [ bar, U2225 ] }; // vertical line, parallel to 418 key <AB08> { [ U235d, U236a ] }; // up shoe jot, comma bar 419 key <AB09> { [ U2340, U2359 ] }; // backslash bar, delta underbar 420 key <AB10> { [ U233f, U2360 ] }; // slash bar, quad colon 421 key <AC01> { [ U237a, U2376 ] }; // alpha, alpha underbar 422 key <AC02> { [ U2308 ] }; // left ceiling 423 key <AC03> { [ U230a ] }; // left floor 424 key <AC04> { [ underscore ] }; // low line 425 key <AC05> { [ U2207, U2362 ] }; // nabla, del diaerisis 426 key <AC06> { [ U2206 ] }; // increment 427 key <AC07> { [ U2218, U2364 ] }; // ring operator, jot diaeresis 428 key <AC08> { [ apostrophe, U2338 ] }; // quote, key 429 key <AC09> { [ U2395, U2337 ] }; // quad, squish quad 430 key <AC10> { [ U234e, U2261 ] }; // up tack jot, identical to 431 key <AC11> { [ U2355, U2262 ] }; // down tack jot, not identical to 432 key <AD01> { [ question, U2370 ] }; // ?, quad question 433 key <AD02> { [ U2375, U2379 ] }; // omega, omega underbar 434 key <AD03> { [ U220a, U2377 ] }; // small element of, epsilon underbar 435 key <AD04> { [ U2374, U233E ] }; // rho, circle jot 436 key <AD05> { [ asciitilde, U2368 ] }; // tilde, tilde diaeresis 437 key <AD06> { [ U2191 ] }; // upwards arrow 438 key <AD07> { [ U2193 ] }; // downwards arrow 439 key <AD08> { [ U2373, U2378 ] }; // iota, iota underbar 440 key <AD09> { [ U25cb, U2365 ] }; // circle, circle diaeresis 441 key <AD10> { [ asterisk, U2363 ] }; // asterisk, star diaeresis 442 key <AD11> { [ U2190, U235e ] }; // left arrow, quote quad 443 key <AD12> { [ U2192, U236c ] }; // right arrow, zilde 444 key <AE01> { [ diaeresis, U2336 ] }; // i-beam 445 key <AE02> { [ macron, U236B ] }; // deltilde 446 key <AE03> { [ less, U2352 ] }; // downgrade 447 key <AE04> { [ U2264, U234b ] }; // lesseq upgrade 448 key <AE05> { [ equal, U233d ] }; // circlestile 449 key <AE06> { [ U2265, U2349 ] }; // greatereq circleslope 450 key <AE07> { [ greater, U2296 ] }; // circlebar 451 key <AE08> { [ U2260, U235f ] }; // notequal, circlestar 452 key <AE09> { [ U2228, U2371 ] }; // logical or, down caret tilde 453 key <AE10> { [ U2227, U2372 ] }; // logical and, up caret tilde 454 key <AE11> { [ multiply, exclam ] }; 455 key <AE12> { [ division, U2339 ] }; // quad divide 456 key <BKSL> { [ U22a2, U22a3 ] }; // right tack, left tack 457 key <LSGT> { [ U22a2, U22a3 ] }; // right tack, left tack 458 key <TLDE> { [ U22c4, U233a ] }; // diamond, quad diamond 459 }; 460 461 hidden partial keypad_keys 462 xkb_symbols "dyalog_box" { 463 464 // 465 // 466 // 467 // 468 // 469 // 470 // 471 // 472 // 473 // 474 // 475 476 key <KP0> { [ U2500 ] }; // box drawing light horizontal 477 key <KP1> { [ U2514 ] }; // box drawing light up and right 478 key <KP2> { [ U2534 ] }; // box drawing light up and horizontal 479 key <KP3> { [ U2518 ] }; // box drawing light up and left 480 key <KP4> { [ U251c ] }; // box drawing light vertical and right 481 key <KP5> { [ U253c ] }; // box drawing light vertical and horizontal 482 key <KP6> { [ U2524 ] }; // box drawing light vertical and left 483 key <KP7> { [ U250c ] }; // box drawing light down and right 484 key <KP8> { [ U252c ] }; // box drawing light down and horizontal 485 key <KP9> { [ U2510 ] }; // box drawing light down and left 486 key <KPDL> { [ U2502 ] }; // box drawing light vertical 487 }; 488 489 hidden partial 490 xkb_symbols "dyalog_codes" { 491 492 // Layout of private use area for this. In the style of the Unicode book 493 // 494 // APL special actions F800-F88F 495 // 496 // F800 F810 F820 F830 F840 F850 F860 F870 F880 497 // 498 // 0QT LL BK FX Rc BP PA 499 // 500 // 1ER HO ZM LN LW AB SA 501 // 502 // 2TB CT SC MC RW HT RZ 503 // 504 // 3BT PT RP MR Lw TH AC 505 // 506 // 4EP IN NX JP Rw RM MA 507 // 508 // 5UC II PV D1 Uc CB OF 509 // 510 // 6DC DI RT D2 Dc PR FS TO 511 // 512 // 7RC DP RA D3 Ll SR FA MO 513 // 514 // 8LC DB ED D4 Rl IS TT 515 // 516 // 9US RD TC D5 Ul TL FT 517 // 518 // ADS TG NB U1 Dl UA PL 519 // 520 // BRS DK NS U2 Us AO CA 521 // 522 // CLS OP ST U3 Ds DO 523 // 524 // DUL CP EN U4 DD GL S1 525 // 526 // EDL MV IF U5 DH CH S2 527 // 528 // FRL FD HK Lc BH PU OS 529 // 530 // 531 // APL Function Keys F700-F7FF 532 // 533 // F700 ... ... F7F0 534 // .... 535 // 0F0 F16 F32 F48 F192F208F224F240 536 // . 537 // . 538 // . 539 // FF15 F31 F47 F63 F207F223F239F255 540 // .... 541 // 542 // whilst these locations are defined. Dyalog's "aplkeys/xterm" file copes with 543 // normal function keys from the base keyboard rather than this overlay 544 545 // 546 // CA ZM 547 // QT ZM 548 // 549 550 // 551 // CB 552 // BP 553 // 554 // BT 555 // TB 556 // 557 // TC 558 // ED 559 // 560 // 561 // 562 // 563 // MO 564 // TO 565 // 566 567 568 key <BKSP> { [ Uf850, Uf855 ] }; // BP CB 569 key <ESC> { [ Uf800, Uf86b ] }; // QT CA 570 key <FK11> { [ Uf821, Uf821 ] }; // ZM, ZM put this on both, the unshifted one sometimes gets lost 571 key <RTRN> { [ Uf828, Uf829 ] }; // ED, TC 572 key <SPCE> { [ Uf886, Uf887 ] }; // TO, MO 573 key <TAB> { [ Uf802, Uf803 ] }; // TB, BT 574 575 // 576 // 577 // BK 578 // 579 // BH RM 580 // PV FD NX 581 // 582 583 key <DOWN> { [ Uf81f ] }; // FD 584 key <LEFT> { [ Uf825, Uf84f ] }; // PV, BH 585 key <RGHT> { [ Uf824, Uf854 ] }; // NX, RM 586 key <UP> { [ Uf820 ] }; // BK 587 588 589 // 590 // PT LL UL 591 // CP LS US 592 // 593 // CT RL DL 594 // DK RS DS 595 // 596 597 key <DELE> { [ Uf81b, Uf812 ] }; // DK, CT 598 key <END> { [ Uf80b, Uf80f ] }; // RS, RL 599 key <HOME> { [ Uf80c, Uf810 ] }; // LS, LL 600 key <INS> { [ Uf81d, Uf813 ] }; // CP, PT 601 key <PGDN> { [ Uf80a, Uf80e ] }; // DS, DL 602 key <PGUP> { [ Uf809, Uf80d ] }; // US, UL 603 604 // 605 // RD TG LN 606 // 607 // 608 // TL 609 // 610 // 611 // 612 // 613 // 614 // 615 616 617 key <KPAD> { [ Uf859 ] }; // TL 618 key <KPDV> { [ Uf819 ] }; // RD 619 key <KPMU> { [ Uf81a ] }; // TG 620 key <KPSU> { [ Uf831 ] }; // LN 621 }; 622 623 xkb_symbols "dyalog" { 624 625 include "apl(dyalog_base)" 626 include "apl(dyalog_box)" 627 include "apl(dyalog_codes)" 628 629 name[Group1] = "APL symbols (Dyalog APL)"; 630 }; 631 632 partial 633 xkb_symbols "level3" { 634 // #UNREGISTERED 635 name[Group1] = "APL on Level3"; 636 637 //from apl(dyalog_base) -- any way to just include it shifted to level3? 638 639 key <AB01> { [ NoSymbol, NoSymbol, U2282, U2286 ] }; // subset of, enclose if simple 640 key <AB02> { [ NoSymbol, NoSymbol, U2283 ] }; // superset of 641 key <AB03> { [ NoSymbol, NoSymbol, U2229 ] }; // intersection 642 key <AB04> { [ NoSymbol, NoSymbol, U222A ] }; // union 643 key <AB05> { [ NoSymbol, NoSymbol, U22a5, U236d ] }; // up tack, stile tide 644 key <AB06> { [ NoSymbol, NoSymbol, U22a4, U2361 ] }; // down tack, down tack diaeresis 645 key <AB07> { [ NoSymbol, NoSymbol, bar, U2225 ] }; // vertical line, parallel to 646 key <AB08> { [ NoSymbol, NoSymbol, U235d, U236a ] }; // up shoe jot, comma bar 647 key <AB09> { [ NoSymbol, NoSymbol, U2340, U2359 ] }; // backslash bar, delta underbar 648 key <AB10> { [ NoSymbol, NoSymbol, U233f, U2360 ] }; // slash bar, quad colon 649 key <AC01> { [ NoSymbol, NoSymbol, U237a, U2376 ] }; // alpha, alpha underbar 650 key <AC02> { [ NoSymbol, NoSymbol, U2308 ] }; // left ceiling 651 key <AC03> { [ NoSymbol, NoSymbol, U230a ] }; // left floor 652 key <AC04> { [ NoSymbol, NoSymbol, underscore ] }; // low line 653 key <AC05> { [ NoSymbol, NoSymbol, U2207, U2362 ] }; // nabla, del diaerisis 654 key <AC06> { [ NoSymbol, NoSymbol, U2206 ] }; // increment 655 key <AC07> { [ NoSymbol, NoSymbol, U2218, U2364 ] }; // ring operator, jot diaeresis 656 key <AC08> { [ NoSymbol, NoSymbol, apostrophe, U2338 ] }; // quote, key 657 key <AC09> { [ NoSymbol, NoSymbol, U2395, U2337 ] }; // quad, squish quad 658 key <AC10> { [ NoSymbol, NoSymbol, U234e, U2261 ] }; // up tack jot, identical to 659 key <AC11> { [ NoSymbol, NoSymbol, U2355, U2262 ] }; // down tack jot, not identical to 660 key <AD01> { [ NoSymbol, NoSymbol, question, U2370 ] }; // ?, quad question 661 key <AD02> { [ NoSymbol, NoSymbol, U2375, U2379 ] }; // omega, omega underbar 662 key <AD03> { [ NoSymbol, NoSymbol, U220a, U2377 ] }; // small element of, epsilon underbar 663 key <AD04> { [ NoSymbol, NoSymbol, U2374, U233E ] }; // rho, circle jot 664 key <AD05> { [ NoSymbol, NoSymbol, asciitilde, U2368 ] }; // tilde, tilde diaeresis 665 key <AD06> { [ NoSymbol, NoSymbol, U2191 ] }; // upwards arrow 666 key <AD07> { [ NoSymbol, NoSymbol, U2193 ] }; // downwards arrow 667 key <AD08> { [ NoSymbol, NoSymbol, U2373, U2378 ] }; // iota, iota underbar 668 key <AD09> { [ NoSymbol, NoSymbol, U25cb, U2365 ] }; // circle, circle diaeresis 669 key <AD10> { [ NoSymbol, NoSymbol, asterisk, U2363 ] }; // asterisk, star diaeresis 670 key <AD11> { [ NoSymbol, NoSymbol, U2190, U235e ] }; // left arrow, quote quad 671 key <AD12> { [ NoSymbol, NoSymbol, U2192, U236c ] }; // right arrow, zilde 672 key <AE01> { [ NoSymbol, NoSymbol, diaeresis, U2336 ] }; // i-beam 673 key <AE02> { [ NoSymbol, NoSymbol, macron, U236B ] }; // deltilde 674 key <AE03> { [ NoSymbol, NoSymbol, less, U2352 ] }; // downgrade 675 key <AE04> { [ NoSymbol, NoSymbol, U2264, U234b ] }; // lesseq upgrade 676 key <AE05> { [ NoSymbol, NoSymbol, equal, U233d ] }; // circlestile 677 key <AE06> { [ NoSymbol, NoSymbol, U2265, U2349 ] }; // greatereq circleslope 678 key <AE07> { [ NoSymbol, NoSymbol, greater, U2296 ] }; // circlebar 679 key <AE08> { [ NoSymbol, NoSymbol, U2260, U235f ] }; // notequal, circlestar 680 key <AE09> { [ NoSymbol, NoSymbol, U2228, U2371 ] }; // logical or, down caret tilde 681 key <AE10> { [ NoSymbol, NoSymbol, U2227, U2372 ] }; // logical and, up caret tilde 682 key <AE11> { [ NoSymbol, NoSymbol, multiply, exclam ] }; 683 key <AE12> { [ NoSymbol, NoSymbol, division, U2339 ] }; // quad divide 684 key <BKSL> { [ NoSymbol, NoSymbol, U22a2, U22a3 ] }; // right tack, left tack 685 key <LSGT> { [ NoSymbol, NoSymbol, U22a2, U22a3 ] }; // right tack, left tack 686 key <TLDE> { [ NoSymbol, NoSymbol, U22c4, U233a ] }; // diamond, quad diamond 687 }; 688