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