// APL Keyboard Layouts // This file supports: // - The Sharp APL for Unix (SAX) layout // - The IBM APL2 layout // - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout // Unicode APL table: http://aplwiki.com/UnicodeAplTable // ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A) // Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm // Tim Nelson (this file's creator) says: // This file doesn't deal with all the combining stuff -- I'm not an APL programmer, // and am not quite sure what's needed here. However, it may be possible to get this // working with dead keys and the like. Patches gratefully accepted. // Some of the shift-key assignments may differ from the APL tradition. If // that's not considered acceptable, it should be possible to remap the // shift keys. I have striven, however, to ensure that the use of shift keys // in these maps is at least self-consistent. // I'm assuming that this will be used with another keyboard layout (ie. for // your language), with a special shift key to use these maps. partial alphanumeric_keys modifier_keys xkb_symbols "common" { name[Group1]= "APL Keyboard Symbols: Common"; key { [ diaeresis ] }; key { [ U00AF ] }; // ¯ -- Macron key { [ less ] }; key { [ U2264 ] }; // ≤ -- Less-than Or Equal To key { [ equal ] }; key { [ U2265 ] }; // ≥ -- Greater-than Or Equal To key { [ greater ] }; key { [ U2260 ] }; // ≠ -- Not Equal To key { [ U2228 ] }; // ∨ -- Logical Or key { [ U2227 ] }; // ∧ -- Logical And // Q key { [ question ] }; // W key { [ U2375 ] }; // ⍵ -- APL Functional Symbol Omega // E key { [ U220A ] }; // ∊ -- Small Element Of // R key { [ U2374 ] }; // ⍴ -- APL Functional Symbol Rho // T key { [ asciitilde ] }; // Y key { [ U2191 ] }; // ↑ -- Upwards Arrow // U key { [ U2193 ] }; // ↓ -- Downwards Arrow // I key { [ U2373 ] }; // ⍳ -- APL Functional Symbol Iota // O key { [ U25CB ] }; // ○ -- White Circle // P key { [ U22C6 ] }; // ⋆ -- Should this be a plain asterisk, or the star operator??? // [ key { [ U2190 ] }; // ← -- Leftwards Arrow // A key { [ U237A ] }; // ⍺ -- APL Functional Symbol Alpha // S key { [ U2308 ] }; // ⌈ -- Left Ceiling // D key { [ U230A ] }; // ⌊ -- Left Floor // F key { [ underscore ] }; // G key { [ U2207 ] }; // ∇ -- Nabla // H key { [ U2206 ] }; // ∆ -- Increment // J key { [ U2218 ] }; // ∘ -- Ring Operator // K key { [ apostrophe ] }; // L key { [ U2395 ] }; // ⎕ -- APL Functional Symbol Quad // Z key { [ U2282 ] }; // ⊂ -- Subset Of // X key { [ U2283 ] }; // ⊃ -- Superset Of // C key { [ U2229 ] }; // ∩ -- Intersection // V key { [ U222A ] }; // ∪ -- Union // B key { [ U22A5 ] }; // ⊥ -- Up Tack // N key { [ U22A4 ] }; // ⊤ -- Down Tack // M key { [ U007C ] }; // | -- Vertical Line }; // Keys common to a number of keyboards that allow normal language usage alongside APL partial alphanumeric_keys modifier_keys xkb_symbols "unified" { name[Group1]= "APL Keyboard Symbols: Unified Layout"; include "apl(common)" // ` key { [ U22C4 ] }; // ⋄ -- Diamond Operator key { [ NoSymbol, U2371 ] }; // ⍱ -- APL Functional Symbol Down Caret Tilde key { [ NoSymbol, U2372 ] }; // ⍲ -- APL Functional Symbol Up Caret Tilde // - key { [ U00D7 ] }; // × -- Multiplication Sign // = key { [ U00F7, U2339 ] }; // ÷ ⌹ -- Division Sign / APL Functional Symbol Quad Divide // ] key { [ U2192 ] }; // → -- Rightwards Arrow }; // Layout: http://www.wickensonline.co.uk/apl-unicomp.html default partial alphanumeric_keys modifier_keys xkb_symbols "sax" { name[Group1]= "APL Keyboard Symbols: Sharp APL for Unix"; include "apl(unified)" key { [ NoSymbol, U00A1 ] }; // ¡ -- Inverted Exclamation Mark key { [ NoSymbol, cent ] }; key { [ NoSymbol, U2342 ] }; // ⍂ -- APL Functional Symbol Quad Backslash // - key { [ NoSymbol, U2261 ] }; // ≡ -- Identical To // Q key { [ NoSymbol, U00BF ] }; // ¿ -- Inverted Question Mark // W key { [ NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile // E key { [ NoSymbol, U2377 ] }; // ⍷ -- APL Functional Symbol Epsilon Underbar // T key { [ NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash // I key { [ NoSymbol, U2378 ] }; // ⍸ -- APL Functional Symbol Iota Underbar // O key { [ NoSymbol, U2365 ] }; // ⍥ -- APL Functional Symbol Circle Diaeresis // P key { [ NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star // A key { [ NoSymbol, U2296 ] }; // ⊖ -- Circled Minus // F key { [ NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde // G key { [ NoSymbol, U2352 ] }; // ∇ ⍒ -- APL Functional Symbol Del Stile // H key { [ NoSymbol, U234B ] }; // ∆ ⍋ -- APL Functional Symbol Delta Stile // J key { [ NoSymbol, U2364 ] }; // ⍤ -- APL Functional Symbol Jot Diaeresis // K key { [ NoSymbol, U233B ] }; // ⌻ // L key { [ NoSymbol, U235E ] }; // ⍞ -- APL Functional Symbol Quote Quad // ; key { [ U22A2 ] }; // ⊢ -- Right Tack // ' key { [ U22A3 ] }; // ⊣ -- Left Tack // C key { [ NoSymbol, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot // B key { [ NoSymbol, U234E ] }; // ⍎ -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack") // N key { [ NoSymbol, U2355 ] }; // ⍕ -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack") // M key { [ NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam // , key { [ U235E, U236A ] }; // ⍞ ⍪ -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar // . key { [ U234E, U2359 ] }; // ⍎ ⍙ -- [See B key] / APL Functional Symbol Delta Underbar // / key { [ U2355, U233F ] }; // ⍕ ⌿ -- [See N key] / APL Functional Symbol Slash Bar key { [ U235D, U2340 ] }; // ⍝ ⍀ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar }; // Layout: http://www.wickensonline.co.uk/apl-unicomp.html partial alphanumeric_keys modifier_keys xkb_symbols "apl2" { name[Group1]= "APL Keyboard Symbols: IBM APL2"; include "apl(common)" // The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything // ` key { [ NoSymbol, U233B, U2342 ] }; // ⌻ ⍂ -- key { [ NoSymbol, NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam key { [ NoSymbol, NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde key { [ NoSymbol, NoSymbol, U2353 ] }; // ⍒ -- APL Functional Symbol Del Stile key { [ NoSymbol, NoSymbol, U234B ] }; // ⍋ -- APL Functional Symbol Delta Stile key { [ NoSymbol, NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile key { [ NoSymbol, NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash key { [ NoSymbol, NoSymbol, U2296 ] }; // ⊖ -- Circled Minus key { [ NoSymbol, NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star key { [ NoSymbol, NoSymbol, U2371 ] }; // ⍱ -- APL Functional Symbol Down Caret Tilde key { [ NoSymbol, NoSymbol, U2372 ] }; // ⍲ -- APL Functional Symbol Up Caret Tilde // - key { [ plus, minus, exclam ] }; // = key { [ U00D7, U00F7, U2339 ] }; // × ÷ ⌹ -- Multiplication Sign / Division Sign / APL Functional Symbol Quad Divide // [ key { [ NoSymbol, U2192, U235E ] }; // (←) → ⍞ -- Rightwards Arrow / APL Functional Symbol Quote Quad // ] key { [ U2337, U2378, U2359 ] }; // ⌷ ⍸ ⍙ -- APL Functional Symbol Squish Quad / APL Functional Symbol Iota Underbar / APL Functional Symbol Delta Underbar // ; key { [ bracketleft, parenleft, U234E ] }; // ⍎ -- [See B key in SAX layout] // ' key { [ bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout] // , key { [ comma, semicolon, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot // . key { [ period, colon, U2340 ] }; // ⍀ -- APL Functional Symbol Backslash Bar // / key { [ slash, backslash, U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar key { [ U2261, U2377, U2364 ] }; // ≡ ⍷ ⍤ -- Identical To / APL Functional Symbol Epsilon Underbar / APL Functional Symbol Jot Diaeresis }; partial alphanumeric_keys modifier_keys xkb_symbols "aplplusII" { name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II"; include "apl(apl2)" // ` key { [ dollar, U22C4, U236A ] }; // ⋄ ⍪ -- Diamond Operator / APL Functional Symbol Comma Bar key { [ NoSymbol, NoSymbol, U2261 ] }; // ≡ -- Identical To // [ key { [ U2190, NoSymbol, U235E ] }; // ← ⍞ -- Leftwards Arrow / APL Functional Symbol Quote Quad // ] key { [ U2192, NoSymbol, U236C ] }; // → ⍬ -- Rightwards Arrow / APL Functional Symbol Zilde // ; key { [ bracketleft, parenleft, U234E ] }; // ⍎ -- [See B key in SAX layout] // ' key { [ bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout] key { [ U22A3, U22A2, U2359 ] }; // ⊣ ⊢ ⍙ -- Left Tack / Right Tack / APL Functional Symbol Delta Underbar }; // MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts // I didn't do the old-style MicroAPL layout; patches gratefully accepted partial alphanumeric_keys modifier_keys xkb_symbols "aplx" { name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout"; include "apl(unified)" // ` key { [ NoSymbol, U235E ] }; // ⍞ -- APL Functional Symbol Quote Quad key { [ NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam key { [ NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde key { [ NoSymbol, U2353 ] }; // ⍒ -- APL Functional Symbol Del Stile key { [ NoSymbol, U234B ] }; // ⍋ -- APL Functional Symbol Delta Stile key { [ NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile key { [ NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash key { [ NoSymbol, U2296 ] }; // ⊖ -- Circled Minus key { [ NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star // - key { [ NoSymbol, exclam ] }; // [ key { [ NoSymbol, U2347 ] }; // ⍇ -- Box With Left Arrow // ] key { [ NoSymbol, U2348 ] }; // ⍈ -- Box With Right Arrow // ; key { [ U234E, U2261 ] }; // ⍎ ≡ -- [See B key in SAX layout] / Identical To // ' key { [ U2355, U2262 ] }; // ⍕ ≢ -- [See N key in SAX layout] / Not Identical To // , key { [ U235D, U236A ] }; // ⍝ ⍪ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar // . key { [ U2340, U2364 ] }; // ⍀ ⍤ -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis // / key { [ U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar key { [ U22A3, U22A3 ] }; // ⊣ ⊢ -- Left Tack / Right Tack };