Hi all. I've been interacting with the APL community to create keyboard maps for their special-purpose keyboards (I don't use APL myself, though). I've created some keyboard maps that, while probably not perfect, are probably a step ahead of the complete lack of support that we currently have for APL.

        My question is, is this the correct place to send them?

[Note for those not familiar with APL: APL is a programming language that uses a large number of symbols to represent its syntax; it's semi-mathematical, and allows a very concise representation of an algorithm. It has regularly had specialised keyboards provided for it in the past. http://en.wikipedia.org/wiki/APL_(programming_language) ]

Oh, incidentally, has there been any thought given to making xkbprint support unicode?

Keyboard map follows:

------------------------------------------------------------

// APL Keyboard Layouts

// This file supports:
// -    The Sharp APL for Unix (SAX) layout
// -    The IBM APL2 layout
// -    The Manugistics APL*PLUS II (Version 5.1, 1993) keyboard layout

// Unicode APL table: http://aplwiki.com/UnicodeAplTable
// ...and another: http://publibfp.boulder.ibm.com/epubs/pdf/h2110611.pdf 
(appendix A)
// Generic Unicode stuff: 
http://www.fileformat.info/info/unicode/category/index.htm

// Tim Nelson (this file's creator) says:

// This file doesn't deal with all the combining stuff -- I'm not an APL 
programmer,
// and am not quite sure what's needed here.  However, it may be possible to 
get this
// working with dead keys and the like.  Patches gratefully accepted.

// Some of the shift-key assignments may differ from the APL tradition.  If
// that's not considered acceptable, it should be possible to remap the // shift keys. I have striven, however, to ensure that the use of shift keys
// in these maps is at least self-consistent.

// I'm assuming that this will be used with another keyboard layout (ie. for // your language), with a special shift key to use these maps.

partial alphanumeric_keys modifier_keys xkb_symbols "common" {
        name[Group1]= "APL Keyboard Symbols: Common";

        key <AE01> { [    diaeresis       ] };
        key <AE02> { [    U00AF   ] }; // ¯ -- Macron
        key <AE03> { [    less    ] };
        key <AE04> { [    U2264   ] }; // â?¤ -- Less-than Or Equal To
        key <AE05> { [    equal   ] };
        key <AE06> { [    U2265   ] }; // â?¥ -- Greater-than Or Equal To
        key <AE07> { [    greater ] };
        key <AE08> { [    U2260   ] }; // â?  -- Not Equal To
        key <AE09> { [    U2228   ] }; // â?¨ -- Logical Or
        key <AE10> { [    U2227   ] }; // â?§ -- Logical And

        // Q
        key <AD01> { [    question        ] };
        // W
        key <AD02> { [    U2375           ] }; // â?µ -- APL Functional Symbol 
Omega
        // E
        key <AD03> { [    U220A           ] }; // â?? -- Small Element Of
        // R
        key <AD04> { [    U2374           ] }; // â?´ -- APL Functional Symbol 
Rho
        // T
        key <AD05> { [    asciitilde              ] };
        // Y
        key <AD06> { [    U2191           ] }; // â?? -- Upwards Arrow
        // U
        key <AD07> { [    U2193           ] }; // â?? -- Downwards Arrow
        // I
        key <AD08> { [    U2373   ] }; // â?³ -- APL Functional Symbol Iota
        // O
        key <AD09> { [    U25CB   ] }; // â?? -- White Circle
        // P
        key <AD10> { [    U22C6   ] }; // â?? -- Should this be a plain 
asterisk, or the star operator???
        // [
        key <AD11> { [    U2190   ] }; // â?? -- Leftwards Arrow

        // A
        key <AC01> { [    U237A   ] }; // â?º -- APL Functional Symbol Alpha
        // S
        key <AC02> { [    U2308   ] }; // â?? -- Left Ceiling
        // D
        key <AC03> { [    U230A   ] }; // â?? -- Left Floor
        // F
        key <AC04> { [    underscore      ] };
        // G
        key <AC05> { [    U2207   ] }; // â?? -- Nabla
        // H
        key <AC06> { [    U2206   ] }; // â?? -- Increment
        // J
        key <AC07> { [    U2218   ] }; // â?? -- Ring Operator
        // K
        key <AC08> { [    apostrophe ] };
        // L
        key <AC09> { [    U2395   ] }; // â?? -- APL Functional Symbol Quad

        // Z
        key <AB01> { [    U2282   ] }; // â?? -- Subset Of
        // X
        key <AB02> { [    U2283   ] }; // â?? -- Superset Of
        // C
        key <AB03> { [    U2229   ] }; // â?© -- Intersection
        // V
        key <AB04> { [    U222A   ] }; // â?ª -- Union
        // B
        key <AB05> { [    U22A5   ] }; // â?¥ -- Up Tack
        // N
        key <AB06> { [    U22A4   ] }; // â?¤ -- Down Tack
        // M
        key <AB07> { [    U007C   ] }; // | -- Vertical Line
};

// Keys common to a number of keyboards that allow normal language usage 
alongside APL
partial alphanumeric_keys modifier_keys xkb_symbols "unified" {
        name[Group1]= "APL Keyboard Symbols: Unified Layout";

        include "apl(common)"

        // `
        key <TLDE> { [    U22C4   ] }; // â?? -- Diamond Operator
        key <AE09> { [    NoSymbol,       U2371   ] }; // â?± -- APL Functional 
Symbol Down Caret Tilde
        key <AE10> { [    NoSymbol,       U2372   ] }; // â?² -- APL Functional 
Symbol Up Caret Tilde
        // -
        key <AE11> { [    U00D7   ] }; // Ã? -- Multiplication Sign
        // =
        key <AE12> { [    U00F7,  U2339   ] }; // ÷ � -- Division Sign / APL 
Functional Symbol Quad Divide

        // ]
        key <AD12> { [    U2192           ] }; // â?? -- Rightwards Arrow
};

// Layout: http://www.wickensonline.co.uk/apl-unicomp.html
default
partial alphanumeric_keys modifier_keys xkb_symbols "sax" {
        name[Group1]= "APL Keyboard Symbols: Sharp APL for Unix";

        include "apl(unified)"

        key <AE01> { [    NoSymbol,       U00A1   ] }; // ¡ -- Inverted 
Exclamation Mark
        key <AE04> { [    NoSymbol,       cent    ] };
        key <AE08> { [    NoSymbol,       U2342   ] }; // â?? -- APL Functional 
Symbol Quad Backslash
        // -
        key <AE11> { [    NoSymbol,       U2261   ] }; // â?¡ -- Identical To

        // Q
        key <AD01> { [    NoSymbol,       U00BF   ] }; // ¿ -- Inverted 
Question Mark
        // W
        key <AD02> { [    NoSymbol,       U233D   ] }; // â?½ -- APL Functional 
Symbol Circle Stile
        // E
        key <AD03> { [    NoSymbol,       U2377   ] }; // â?· -- APL Functional 
Symbol Epsilon Underbar
        // T
        key <AD05> { [    NoSymbol,       U2349   ] }; // â?? -- APL Functional 
Symbol Circle Backslash
        // I
        key <AD08> { [    NoSymbol,       U2378   ] }; // â?¸ -- APL Functional 
Symbol Iota Underbar
        // O
        key <AD09> { [    NoSymbol,       U2365   ] }; // â?¥ -- APL Functional 
Symbol Circle Diaeresis
        // P
        key <AD10> { [    NoSymbol,       U235F   ] }; // â?? -- APL Functional 
Symbol Circle Star

        // A
        key <AC01> { [    NoSymbol,       U2296   ] }; // â?? -- Circled Minus
        // F
        key <AC04> { [    NoSymbol,       U236B   ] }; // â?« -- APL Functional 
Symbol Del Tilde
        // G
        key <AC05> { [    NoSymbol,       U2352   ] }; // â?? â?? -- APL 
Functional Symbol Del Stile
        // H
        key <AC06> { [    NoSymbol,       U234B   ] }; // â?? â?? -- APL 
Functional Symbol Delta Stile
        // J
        key <AC07> { [    NoSymbol,       U2364   ] }; // â?¤ -- APL Functional 
Symbol Jot Diaeresis
        // K
        key <AC08> { [    NoSymbol,       U233B   ] }; // â?»
        // L
        key <AC09> { [    NoSymbol,       U235E   ] }; // â?? -- APL Functional 
Symbol Quote Quad
        // ;
        key <AC10> { [    U22A2   ] }; // â?¢ -- Right Tack
        // '
        key <AC11> { [    U22A3   ] }; // â?£ -- Left Tack

        // C
        key <AB03> { [    NoSymbol,       U235D   ] }; // â?? -- APL Functional 
Symbol Up Shoe Jot
        // B
        key <AB05> { [    NoSymbol,       U234E   ] }; // â?? -- APL Functional Symbol 
Down Tack Jot (Unicode got the name wrong; it should have been "Up Tack")
        // N
        key <AB06> { [    NoSymbol,       U2355   ] }; // â?? -- APL Functional Symbol Up 
Tack Jot (Unicode got the name wrong; it should have been "Down Tack")
        // M
        key <AB07> { [    NoSymbol,       U2336   ] }; // â?¶ -- APL Functional 
Symbol I-Beam
        // ,
        key <AB08> { [    U235E,  U236A   ] }; // â?? â?ª -- APL Functional 
Symbol Quote Quad / APL Functional Symbol Comma Bar
        // .
        key <AB09> { [    U234E,  U2359   ] }; // â?? â?? -- [See B key] / APL 
Functional Symbol Delta Underbar
        // /
        key <AB10> { [    U2355,  U233F   ] }; // â?? â?¿ -- [See N key] / APL 
Functional Symbol Slash Bar

        key <BKSL> { [    U235D,  U2340   ] }; // â?? â?? -- APL Functional 
Symbol Up Shoe Jot / APL Functional Symbol Backslash Bar
};

// Layout: http://www.wickensonline.co.uk/apl-unicomp.html
partial alphanumeric_keys modifier_keys xkb_symbols "apl2" {
        name[Group1]= "APL Keyboard Symbols: IBM APL2";

        include "apl(common)"

        // The first column is NoSymbol because it inherits.  The second is 
NoSymbol because those keys don't do anything

        // `
        key <TLDE> { [    NoSymbol,       U233B,  U2342   ] }; // â?» â?? --
        key <AE01> { [    NoSymbol, NoSymbol, U2336       ] }; // â?¶ -- APL 
Functional Symbol I-Beam
        key <AE02> { [    NoSymbol, NoSymbol,     U236B   ] }; // â?« -- APL 
Functional Symbol Del Tilde
        key <AE03> { [    NoSymbol, NoSymbol,     U2353   ] }; // â?? -- APL 
Functional Symbol Del Stile
        key <AE04> { [    NoSymbol, NoSymbol,     U234B   ] }; // â?? -- APL 
Functional Symbol Delta Stile
        key <AE05> { [    NoSymbol, NoSymbol,     U233D   ] }; // â?½ -- APL 
Functional Symbol Circle Stile
        key <AE06> { [    NoSymbol, NoSymbol,     U2349   ] }; // â?? -- APL 
Functional Symbol Circle Backslash
        key <AE07> { [    NoSymbol, NoSymbol,     U2296   ] }; // â?? -- 
Circled Minus
        key <AE08> { [    NoSymbol, NoSymbol,     U235F   ] }; // â?? -- APL 
Functional Symbol Circle Star
        key <AE09> { [    NoSymbol, NoSymbol,     U2371   ] }; // â?± -- APL 
Functional Symbol Down Caret Tilde
        key <AE10> { [    NoSymbol, NoSymbol,     U2372   ] }; // â?² -- APL 
Functional Symbol Up Caret Tilde
        // -
        key <AE11> { [    plus,   minus,  exclam  ] };
        // =
        key <AE12> { [    U00D7,  U00F7,  U2339   ] }; // � ÷ � -- 
Multiplication Sign / Division Sign / APL Functional Symbol Quad Divide

        // [
        key <AD11> { [    NoSymbol,       U2192,  U235E   ] }; // (â??) â?? â?? 
-- Rightwards Arrow / APL Functional Symbol Quote Quad
        // ]
        key <AD12> { [    U2337,  U2378,  U2359   ] }; // â?· â?¸ â?? -- APL 
Functional Symbol Squish Quad / APL Functional Symbol Iota Underbar / APL Functional 
Symbol Delta Underbar

        // ;
        key <AC10> { [    bracketleft, parenleft, U234E   ] }; // â?? -- [See B 
key in SAX layout]
        // '
        key <AC11> { [    bracketright, parenright, U2355 ] }; // â?? -- [See N 
key in SAX layout]

        // ,
        key <AB08> { [    comma,  semicolon, U235D ] }; // â?? -- APL 
Functional Symbol Up Shoe Jot
        // .
        key <AB09> { [    period, colon,  U2340   ] }; // â?? -- APL Functional 
Symbol Backslash Bar
        // /
        key <AB10> { [    slash,  backslash, U233F ] }; // â?¿ -- APL 
Functional Symbol Slash Bar

        key <BKSL> { [    U2261,  U2377, U2364    ] }; // â?¡ â?· â?¤ -- 
Identical To / APL Functional Symbol Epsilon Underbar / APL Functional Symbol Jot 
Diaeresis
};

partial alphanumeric_keys modifier_keys xkb_symbols "aplplusII" {
        name[Group1]= "APL Keyboard Symbols: Manugistics APL*PLUS II";

        include "apl(apl2)"

        // `
        key <TLDE> { [    dollar, U22C4,  U236A   ] }; // â?? â?ª -- Diamond 
Operator / APL Functional Symbol Comma Bar
        key <AE01> { [    NoSymbol, NoSymbol, U2261       ] }; // â?¡ -- 
Identical To

        // [
        key <AD11> { [    U2190,  NoSymbol,       U235E   ] }; // â?? â?? -- 
Leftwards Arrow / APL Functional Symbol Quote Quad
        // ]
        key <AD12> { [    U2192,  NoSymbol,       U236C   ] }; // â?? â?¬ -- 
Rightwards Arrow / APL Functional Symbol Zilde

        // ;
        key <AC10> { [    bracketleft, parenleft, U234E   ] }; // â?? -- [See B 
key in SAX layout]
        // '
        key <AC11> { [    bracketright, parenright, U2355 ] }; // â?? -- [See N 
key in SAX layout]

        key <BKSL> { [    U22A3,  U22A2,  U2359   ] }; // â?£ â?¢ â?? -- Left 
Tack / Right Tack / APL Functional Symbol Delta Underbar
};


// MicroAPL layout: http://aplwiki.com/APLXKeyboardLayouts
// I didn't do the old-style MicroAPL layout; patches gratefully accepted
partial alphanumeric_keys modifier_keys xkb_symbols "aplx" {
        name[Group1]= "APL Keyboard Symbols: APLX Unified APL Layout";

        include "apl(unified)"

        // `
        key <TLDE> { [    NoSymbol,       U235E   ] }; // â?? -- APL Functional 
Symbol Quote Quad
        key <AE01> { [    NoSymbol,       U2336   ] }; // â?¶ -- APL Functional 
Symbol I-Beam
        key <AE02> { [    NoSymbol,       U236B   ] }; // â?« -- APL Functional 
Symbol Del Tilde
        key <AE03> { [    NoSymbol,       U2353   ] }; // â?? -- APL Functional 
Symbol Del Stile
        key <AE04> { [    NoSymbol,       U234B   ] }; // â?? -- APL Functional 
Symbol Delta Stile
        key <AE05> { [    NoSymbol,       U233D   ] }; // â?½ -- APL Functional 
Symbol Circle Stile
        key <AE06> { [    NoSymbol,       U2349   ] }; // â?? -- APL Functional 
Symbol Circle Backslash
        key <AE07> { [    NoSymbol,       U2296   ] }; // â?? -- Circled Minus
        key <AE08> { [    NoSymbol,       U235F   ] }; // â?? -- APL Functional 
Symbol Circle Star
        // -
        key <AE11> { [    NoSymbol,       exclam ] };

        // [
        key <AD11> { [    NoSymbol,       U2347   ] }; // â?? -- Box With Left 
Arrow
        // ]
        key <AD12> { [    NoSymbol,       U2348   ] }; // â?? -- Box With Right 
Arrow

        // ;
        key <AC10> { [    U234E,  U2261   ] }; // â?? â?¡ -- [See B key in SAX 
layout] / Identical To
        // '
        key <AC11> { [    U2355,  U2262   ] }; // â?? â?¢ -- [See N key in SAX 
layout] / Not Identical To

        // ,
        key <AB08> { [    U235D,  U236A   ] }; // â?? â?ª -- APL Functional 
Symbol Up Shoe Jot / APL Functional Symbol Comma Bar
        // .
        key <AB09> { [    U2340,  U2364   ] }; // â?? â?¤ -- APL Functional 
Symbol Backslash Bar / APL Functional Symbol Jot Diaeresis
        // /
        key <AB10> { [    U233F ] }; // â?¿ -- APL Functional Symbol Slash Bar

        key <BKSL> { [    U22A3,  U22A3   ] }; // â?£ â?¢ -- Left Tack / Right 
Tack
};

------------------------------------------------------------


---------------------------------------------------------------------
| Name: Tim Nelson                 | Because the Creator is,        |
| E-mail: [email protected]    | I am                           |
---------------------------------------------------------------------

----BEGIN GEEK CODE BLOCK----
Version 3.12
GCS d+++ s+: a- C++$ U+++$ P+++$ L+++ E- W+ N+ w--- V- PE(+) Y+>++ PGP->+++ R(+) !tv b++ DI++++ D G+ e++>++++ h! y-
-----END GEEK CODE BLOCK-----
_______________________________________________
xorg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to