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