apl revision bfd7cbc1
1bfd7cbc1Smrg// EXTRAS: 2bfd7cbc1Smrg// 3bfd7cbc1Smrg// APL Keyboard Layouts 4bfd7cbc1Smrg 5bfd7cbc1Smrg// This file supports: 6bfd7cbc1Smrg// - The Sharp APL for Unix (SAX) layout 7bfd7cbc1Smrg// - The IBM APL2 layout 8bfd7cbc1Smrg// - The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout 9bfd7cbc1Smrg 10bfd7cbc1Smrg// Unicode APL table: http://aplwiki.com/UnicodeAplTable 11bfd7cbc1Smrg// ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf (appendix A) 12bfd7cbc1Smrg// Generic Unicode stuff: http://www.fileformat.info/info/unicode/category/index.htm 13bfd7cbc1Smrg 14bfd7cbc1Smrg// Tim Nelson (this file's creator) says: 15bfd7cbc1Smrg 16bfd7cbc1Smrg// This file doesn't deal with all the combining stuff -- I'm not an APL programmer, 17bfd7cbc1Smrg// and am not quite sure what's needed here. However, it may be possible to get this 18bfd7cbc1Smrg// working with dead keys and the like. Patches gratefully accepted. 19bfd7cbc1Smrg 20bfd7cbc1Smrg// Some of the shift-key assignments may differ from the APL tradition. If 21bfd7cbc1Smrg// that's not considered acceptable, it should be possible to remap the 22bfd7cbc1Smrg// shift keys. I have striven, however, to ensure that the use of shift keys 23bfd7cbc1Smrg// in these maps is at least self-consistent. 24bfd7cbc1Smrg 25bfd7cbc1Smrg// I'm assuming that this will be used with another keyboard layout (ie. for 26bfd7cbc1Smrg// your language), with a special shift key to use these maps. 27bfd7cbc1Smrg 28bfd7cbc1Smrgpartial alphanumeric_keys modifier_keys 29bfd7cbc1Smrgxkb_symbols "common" { 30bfd7cbc1Smrg name[Group1]= "APL"; 31bfd7cbc1Smrg 32bfd7cbc1Smrg key <AE01> { [ diaeresis ] }; 33bfd7cbc1Smrg key <AE02> { [ U00AF ] }; // ¯ -- Macron 34bfd7cbc1Smrg key <AE03> { [ less ] }; 35bfd7cbc1Smrg key <AE04> { [ U2264 ] }; // ≤ -- Less-than Or Equal To 36bfd7cbc1Smrg key <AE05> { [ equal ] }; 37bfd7cbc1Smrg key <AE06> { [ U2265 ] }; // ≥ -- Greater-than Or Equal To 38bfd7cbc1Smrg key <AE07> { [ greater ] }; 39bfd7cbc1Smrg key <AE08> { [ U2260 ] }; // ≠ -- Not Equal To 40bfd7cbc1Smrg key <AE09> { [ U2228 ] }; // ∨ -- Logical Or 41bfd7cbc1Smrg key <AE10> { [ U2227 ] }; // ∧ -- Logical And 42bfd7cbc1Smrg 43bfd7cbc1Smrg // Q 44bfd7cbc1Smrg key <AD01> { [ question ] }; 45bfd7cbc1Smrg // W 46bfd7cbc1Smrg key <AD02> { [ U2375 ] }; // ⍵ -- APL Functional Symbol Omega 47bfd7cbc1Smrg // E 48bfd7cbc1Smrg key <AD03> { [ U220A ] }; // ∊ -- Small Element Of 49bfd7cbc1Smrg // R 50bfd7cbc1Smrg key <AD04> { [ U2374 ] }; // ⍴ -- APL Functional Symbol Rho 51bfd7cbc1Smrg // T 52bfd7cbc1Smrg key <AD05> { [ asciitilde ] }; 53bfd7cbc1Smrg // Y 54bfd7cbc1Smrg key <AD06> { [ U2191 ] }; // ↑ -- Upwards Arrow 55bfd7cbc1Smrg // U 56bfd7cbc1Smrg key <AD07> { [ U2193 ] }; // ↓ -- Downwards Arrow 57bfd7cbc1Smrg // I 58bfd7cbc1Smrg key <AD08> { [ U2373 ] }; // ⍳ -- APL Functional Symbol Iota 59bfd7cbc1Smrg // O 60bfd7cbc1Smrg key <AD09> { [ U25CB ] }; // ○ -- White Circle 61bfd7cbc1Smrg // P 62bfd7cbc1Smrg key <AD10> { [ U22C6 ] }; // ⋆ -- Should this be a plain asterisk, or the star operator??? 63bfd7cbc1Smrg // [ 64bfd7cbc1Smrg key <AD11> { [ U2190 ] }; // ← -- Leftwards Arrow 65bfd7cbc1Smrg 66bfd7cbc1Smrg // A 67bfd7cbc1Smrg key <AC01> { [ U237A ] }; // ⍺ -- APL Functional Symbol Alpha 68bfd7cbc1Smrg // S 69bfd7cbc1Smrg key <AC02> { [ U2308 ] }; // ⌈ -- Left Ceiling 70bfd7cbc1Smrg // D 71bfd7cbc1Smrg key <AC03> { [ U230A ] }; // ⌊ -- Left Floor 72bfd7cbc1Smrg // F 73bfd7cbc1Smrg key <AC04> { [ underscore ] }; 74bfd7cbc1Smrg // G 75bfd7cbc1Smrg key <AC05> { [ U2207 ] }; // ∇ -- Nabla 76bfd7cbc1Smrg // H 77bfd7cbc1Smrg key <AC06> { [ U2206 ] }; // ∆ -- Increment 78bfd7cbc1Smrg // J 79bfd7cbc1Smrg key <AC07> { [ U2218 ] }; // ∘ -- Ring Operator 80bfd7cbc1Smrg // K 81bfd7cbc1Smrg key <AC08> { [ apostrophe ] }; 82bfd7cbc1Smrg // L 83bfd7cbc1Smrg key <AC09> { [ U2395 ] }; // ⎕ -- APL Functional Symbol Quad 84bfd7cbc1Smrg 85bfd7cbc1Smrg // Z 86bfd7cbc1Smrg key <AB01> { [ U2282 ] }; // ⊂ -- Subset Of 87bfd7cbc1Smrg // X 88bfd7cbc1Smrg key <AB02> { [ U2283 ] }; // ⊃ -- Superset Of 89bfd7cbc1Smrg // C 90bfd7cbc1Smrg key <AB03> { [ U2229 ] }; // ∩ -- Intersection 91bfd7cbc1Smrg // V 92bfd7cbc1Smrg key <AB04> { [ U222A ] }; // ∪ -- Union 93bfd7cbc1Smrg // B 94bfd7cbc1Smrg key <AB05> { [ U22A5 ] }; // ⊥ -- Up Tack 95bfd7cbc1Smrg // N 96bfd7cbc1Smrg key <AB06> { [ U22A4 ] }; // ⊤ -- Down Tack 97bfd7cbc1Smrg // M 98bfd7cbc1Smrg key <AB07> { [ U007C ] }; // | -- Vertical Line 99bfd7cbc1Smrg}; 100bfd7cbc1Smrg 101bfd7cbc1Smrg// Keys common to a number of keyboards that allow normal language usage alongside APL 102bfd7cbc1Smrgpartial alphanumeric_keys modifier_keys 103bfd7cbc1Smrgxkb_symbols "unified" { 104bfd7cbc1Smrg name[Group1]= "APL Keyboard Symbols: Unified Layout"; 105bfd7cbc1Smrg 106bfd7cbc1Smrg include "apl(common)" 107bfd7cbc1Smrg 108bfd7cbc1Smrg // ` 109bfd7cbc1Smrg key <TLDE> { [ U22C4 ] }; // ⋄ -- Diamond Operator 110bfd7cbc1Smrg key <AE09> { [ NoSymbol, U2371 ] }; // ⍱ -- APL Functional Symbol Down Caret Tilde 111bfd7cbc1Smrg key <AE10> { [ NoSymbol, U2372 ] }; // ⍲ -- APL Functional Symbol Up Caret Tilde 112bfd7cbc1Smrg // - 113bfd7cbc1Smrg key <AE11> { [ U00D7 ] }; // × -- Multiplication Sign 114bfd7cbc1Smrg // = 115bfd7cbc1Smrg key <AE12> { [ U00F7, U2339 ] }; // ÷ ⌹ -- Division Sign / APL Functional Symbol Quad Divide 116bfd7cbc1Smrg 117bfd7cbc1Smrg // ] 118bfd7cbc1Smrg key <AD12> { [ U2192 ] }; // → -- Rightwards Arrow 119bfd7cbc1Smrg}; 120bfd7cbc1Smrg 121bfd7cbc1Smrg// Layout: http://www.wickensonline.co.uk/apl-unicomp.html 122bfd7cbc1Smrgdefault 123bfd7cbc1Smrgpartial alphanumeric_keys modifier_keys 124bfd7cbc1Smrgxkb_symbols "sax" { 125bfd7cbc1Smrg name[Group1]= "APL Keyboard Symbols"; 126bfd7cbc1Smrg 127bfd7cbc1Smrg include "apl(unified)" 128bfd7cbc1Smrg 129bfd7cbc1Smrg key <AE01> { [ NoSymbol, U00A1 ] }; // ¡ -- Inverted Exclamation Mark 130bfd7cbc1Smrg key <AE04> { [ NoSymbol, cent ] }; 131bfd7cbc1Smrg key <AE08> { [ NoSymbol, U2342 ] }; // ⍂ -- APL Functional Symbol Quad Backslash 132bfd7cbc1Smrg // - 133bfd7cbc1Smrg key <AE11> { [ NoSymbol, U2261 ] }; // ≡ -- Identical To 134bfd7cbc1Smrg 135bfd7cbc1Smrg // Q 136bfd7cbc1Smrg key <AD01> { [ NoSymbol, U00BF ] }; // ¿ -- Inverted Question Mark 137bfd7cbc1Smrg // W 138bfd7cbc1Smrg key <AD02> { [ NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile 139bfd7cbc1Smrg // E 140bfd7cbc1Smrg key <AD03> { [ NoSymbol, U2377 ] }; // ⍷ -- APL Functional Symbol Epsilon Underbar 141bfd7cbc1Smrg // T 142bfd7cbc1Smrg key <AD05> { [ NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash 143bfd7cbc1Smrg // I 144bfd7cbc1Smrg key <AD08> { [ NoSymbol, U2378 ] }; // ⍸ -- APL Functional Symbol Iota Underbar 145bfd7cbc1Smrg // O 146bfd7cbc1Smrg key <AD09> { [ NoSymbol, U2365 ] }; // ⍥ -- APL Functional Symbol Circle Diaeresis 147bfd7cbc1Smrg // P 148bfd7cbc1Smrg key <AD10> { [ NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star 149bfd7cbc1Smrg 150bfd7cbc1Smrg // A 151bfd7cbc1Smrg key <AC01> { [ NoSymbol, U2296 ] }; // ⊖ -- Circled Minus 152bfd7cbc1Smrg // F 153bfd7cbc1Smrg key <AC04> { [ NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde 154bfd7cbc1Smrg // G 155bfd7cbc1Smrg key <AC05> { [ NoSymbol, U2352 ] }; // ∇ ⍒ -- APL Functional Symbol Del Stile 156bfd7cbc1Smrg // H 157bfd7cbc1Smrg key <AC06> { [ NoSymbol, U234B ] }; // ∆ ⍋ -- APL Functional Symbol Delta Stile 158bfd7cbc1Smrg // J 159bfd7cbc1Smrg key <AC07> { [ NoSymbol, U2364 ] }; // ⍤ -- APL Functional Symbol Jot Diaeresis 160bfd7cbc1Smrg // K 161bfd7cbc1Smrg key <AC08> { [ NoSymbol, U233B ] }; // ⌻ 162bfd7cbc1Smrg // L 163bfd7cbc1Smrg key <AC09> { [ NoSymbol, U235E ] }; // ⍞ -- APL Functional Symbol Quote Quad 164bfd7cbc1Smrg // ; 165bfd7cbc1Smrg key <AC10> { [ U22A2 ] }; // ⊢ -- Right Tack 166bfd7cbc1Smrg // ' 167bfd7cbc1Smrg key <AC11> { [ U22A3 ] }; // ⊣ -- Left Tack 168bfd7cbc1Smrg 169bfd7cbc1Smrg // C 170bfd7cbc1Smrg key <AB03> { [ NoSymbol, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot 171bfd7cbc1Smrg // B 172bfd7cbc1Smrg key <AB05> { [ NoSymbol, U234E ] }; // ⍎ -- APL Functional Symbol Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack") 173bfd7cbc1Smrg // N 174bfd7cbc1Smrg key <AB06> { [ NoSymbol, U2355 ] }; // ⍕ -- APL Functional Symbol Up Tack Jot (Unicode got the name wrong; it should have been "Down Tack") 175bfd7cbc1Smrg // M 176bfd7cbc1Smrg key <AB07> { [ NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam 177bfd7cbc1Smrg // , 178bfd7cbc1Smrg key <AB08> { [ U235E, U236A ] }; // ⍞ ⍪ -- APL Functional Symbol Quote Quad / APL Functional Symbol Comma Bar 179bfd7cbc1Smrg // . 180bfd7cbc1Smrg key <AB09> { [ U234E, U2359 ] }; // ⍎ ⍙ -- [See B key] / APL Functional Symbol Delta Underbar 181bfd7cbc1Smrg // / 182bfd7cbc1Smrg key <AB10> { [ U2355, U233F ] }; // ⍕ ⌿ -- [See N key] / APL Functional Symbol Slash Bar 183bfd7cbc1Smrg 184bfd7cbc1Smrg key <BKSL> { [ U235D, U2340 ] }; // ⍝ ⍀ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar 185bfd7cbc1Smrg}; 186bfd7cbc1Smrg 187bfd7cbc1Smrg// Layout: http://www.wickensonline.co.uk/apl-unicomp.html 188bfd7cbc1Smrgpartial alphanumeric_keys modifier_keys 189bfd7cbc1Smrgxkb_symbols "apl2" { 190bfd7cbc1Smrg name[Group1]= "APL Keyboard Symbols: IBM APL2"; 191bfd7cbc1Smrg 192bfd7cbc1Smrg include "apl(common)" 193bfd7cbc1Smrg 194bfd7cbc1Smrg // The first column is NoSymbol because it inherits. The second is NoSymbol because those keys don't do anything 195bfd7cbc1Smrg 196bfd7cbc1Smrg // ` 197bfd7cbc1Smrg key <TLDE> { [ NoSymbol, U233B, U2342 ] }; // ⌻ ⍂ -- 198bfd7cbc1Smrg key <AE01> { [ NoSymbol, NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam 199bfd7cbc1Smrg key <AE02> { [ NoSymbol, NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde 200bfd7cbc1Smrg key <AE03> { [ NoSymbol, NoSymbol, U2353 ] }; // ⍒ -- APL Functional Symbol Del Stile 201bfd7cbc1Smrg key <AE04> { [ NoSymbol, NoSymbol, U234B ] }; // ⍋ -- APL Functional Symbol Delta Stile 202bfd7cbc1Smrg key <AE05> { [ NoSymbol, NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile 203bfd7cbc1Smrg key <AE06> { [ NoSymbol, NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash 204bfd7cbc1Smrg key <AE07> { [ NoSymbol, NoSymbol, U2296 ] }; // ⊖ -- Circled Minus 205bfd7cbc1Smrg key <AE08> { [ NoSymbol, NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star 206bfd7cbc1Smrg key <AE09> { [ NoSymbol, NoSymbol, U2371 ] }; // ⍱ -- APL Functional Symbol Down Caret Tilde 207bfd7cbc1Smrg key <AE10> { [ NoSymbol, NoSymbol, U2372 ] }; // ⍲ -- APL Functional Symbol Up Caret Tilde 208bfd7cbc1Smrg // - 209bfd7cbc1Smrg key <AE11> { [ plus, minus, exclam ] }; 210bfd7cbc1Smrg // = 211bfd7cbc1Smrg key <AE12> { [ U00D7, U00F7, U2339 ] }; // × ÷ ⌹ -- Multiplication Sign / Division Sign / APL Functional Symbol Quad Divide 212bfd7cbc1Smrg 213bfd7cbc1Smrg // [ 214bfd7cbc1Smrg key <AD11> { [ NoSymbol, U2192, U235E ] }; // (←) → ⍞ -- Rightwards Arrow / APL Functional Symbol Quote Quad 215bfd7cbc1Smrg // ] 216bfd7cbc1Smrg key <AD12> { [ U2337, U2378, U2359 ] }; // ⌷ ⍸ ⍙ -- APL Functional Symbol Squish Quad / APL Functional Symbol Iota Underbar / APL Functional Symbol Delta Underbar 217bfd7cbc1Smrg 218bfd7cbc1Smrg // ; 219bfd7cbc1Smrg key <AC10> { [ bracketleft, parenleft, U234E ] }; // ⍎ -- [See B key in SAX layout] 220bfd7cbc1Smrg // ' 221bfd7cbc1Smrg key <AC11> { [ bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout] 222bfd7cbc1Smrg 223bfd7cbc1Smrg // , 224bfd7cbc1Smrg key <AB08> { [ comma, semicolon, U235D ] }; // ⍝ -- APL Functional Symbol Up Shoe Jot 225bfd7cbc1Smrg // . 226bfd7cbc1Smrg key <AB09> { [ period, colon, U2340 ] }; // ⍀ -- APL Functional Symbol Backslash Bar 227bfd7cbc1Smrg // / 228bfd7cbc1Smrg key <AB10> { [ slash, backslash, U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar 229bfd7cbc1Smrg 230bfd7cbc1Smrg key <BKSL> { [ U2261, U2377, U2364 ] }; // ≡ ⍷ ⍤ -- Identical To / APL Functional Symbol Epsilon Underbar / APL Functional Symbol Jot Diaeresis 231bfd7cbc1Smrg}; 232bfd7cbc1Smrg 233bfd7cbc1Smrgpartial alphanumeric_keys modifier_keys 234bfd7cbc1Smrgxkb_symbols "aplplusII" { 235bfd7cbc1Smrg name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II"; 236bfd7cbc1Smrg 237bfd7cbc1Smrg include "apl(apl2)" 238bfd7cbc1Smrg 239bfd7cbc1Smrg // ` 240bfd7cbc1Smrg key <TLDE> { [ dollar, U22C4, U236A ] }; // ⋄ ⍪ -- Diamond Operator / APL Functional Symbol Comma Bar 241bfd7cbc1Smrg key <AE01> { [ NoSymbol, NoSymbol, U2261 ] }; // ≡ -- Identical To 242bfd7cbc1Smrg 243bfd7cbc1Smrg // [ 244bfd7cbc1Smrg key <AD11> { [ U2190, NoSymbol, U235E ] }; // ← ⍞ -- Leftwards Arrow / APL Functional Symbol Quote Quad 245bfd7cbc1Smrg // ] 246bfd7cbc1Smrg key <AD12> { [ U2192, NoSymbol, U236C ] }; // → ⍬ -- Rightwards Arrow / APL Functional Symbol Zilde 247bfd7cbc1Smrg 248bfd7cbc1Smrg // ; 249bfd7cbc1Smrg key <AC10> { [ bracketleft, parenleft, U234E ] }; // ⍎ -- [See B key in SAX layout] 250bfd7cbc1Smrg // ' 251bfd7cbc1Smrg key <AC11> { [ bracketright, parenright, U2355 ] }; // ⍕ -- [See N key in SAX layout] 252bfd7cbc1Smrg 253bfd7cbc1Smrg key <BKSL> { [ U22A3, U22A2, U2359 ] }; // ⊣ ⊢ ⍙ -- Left Tack / Right Tack / APL Functional Symbol Delta Underbar 254bfd7cbc1Smrg}; 255bfd7cbc1Smrg 256bfd7cbc1Smrg 257bfd7cbc1Smrg// MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts 258bfd7cbc1Smrg// I didn't do the old-style MicroAPL layout; patches gratefully accepted 259bfd7cbc1Smrgpartial alphanumeric_keys modifier_keys 260bfd7cbc1Smrgxkb_symbols "aplx" { 261bfd7cbc1Smrg name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout"; 262bfd7cbc1Smrg 263bfd7cbc1Smrg include "apl(unified)" 264bfd7cbc1Smrg 265bfd7cbc1Smrg // ` 266bfd7cbc1Smrg key <TLDE> { [ NoSymbol, U235E ] }; // ⍞ -- APL Functional Symbol Quote Quad 267bfd7cbc1Smrg key <AE01> { [ NoSymbol, U2336 ] }; // ⌶ -- APL Functional Symbol I-Beam 268bfd7cbc1Smrg key <AE02> { [ NoSymbol, U236B ] }; // ⍫ -- APL Functional Symbol Del Tilde 269bfd7cbc1Smrg key <AE03> { [ NoSymbol, U2353 ] }; // ⍒ -- APL Functional Symbol Del Stile 270bfd7cbc1Smrg key <AE04> { [ NoSymbol, U234B ] }; // ⍋ -- APL Functional Symbol Delta Stile 271bfd7cbc1Smrg key <AE05> { [ NoSymbol, U233D ] }; // ⌽ -- APL Functional Symbol Circle Stile 272bfd7cbc1Smrg key <AE06> { [ NoSymbol, U2349 ] }; // ⍉ -- APL Functional Symbol Circle Backslash 273bfd7cbc1Smrg key <AE07> { [ NoSymbol, U2296 ] }; // ⊖ -- Circled Minus 274bfd7cbc1Smrg key <AE08> { [ NoSymbol, U235F ] }; // ⍟ -- APL Functional Symbol Circle Star 275bfd7cbc1Smrg // - 276bfd7cbc1Smrg key <AE11> { [ NoSymbol, exclam ] }; 277bfd7cbc1Smrg 278bfd7cbc1Smrg // [ 279bfd7cbc1Smrg key <AD11> { [ NoSymbol, U2347 ] }; // ⍇ -- Box With Left Arrow 280bfd7cbc1Smrg // ] 281bfd7cbc1Smrg key <AD12> { [ NoSymbol, U2348 ] }; // ⍈ -- Box With Right Arrow 282bfd7cbc1Smrg 283bfd7cbc1Smrg // ; 284bfd7cbc1Smrg key <AC10> { [ U234E, U2261 ] }; // ⍎ ≡ -- [See B key in SAX layout] / Identical To 285bfd7cbc1Smrg // ' 286bfd7cbc1Smrg key <AC11> { [ U2355, U2262 ] }; // ⍕ ≢ -- [See N key in SAX layout] / Not Identical To 287bfd7cbc1Smrg 288bfd7cbc1Smrg // , 289bfd7cbc1Smrg key <AB08> { [ U235D, U236A ] }; // ⍝ ⍪ -- APL Functional Symbol Up Shoe Jot / APL Functional Symbol Comma Bar 290bfd7cbc1Smrg // . 291bfd7cbc1Smrg key <AB09> { [ U2340, U2364 ] }; // ⍀ ⍤ -- APL Functional Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis 292bfd7cbc1Smrg // / 293bfd7cbc1Smrg key <AB10> { [ U233F ] }; // ⌿ -- APL Functional Symbol Slash Bar 294bfd7cbc1Smrg 295bfd7cbc1Smrg key <BKSL> { [ U22A3, U22A3 ] }; // ⊣ ⊢ -- Left Tack / Right Tack 296bfd7cbc1Smrg}; 297