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