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