Problems of Symbol Congestion in Computer Languages

Xah Lee xahlee at gmail.com
Sat Mar 5 04:32:25 EST 2011


On Mar 1, 3:40 pm, Chris Jones <cjns1... at gmail.com> wrote:

> At first it looks like something MS (Morgan Stanley..) dumped into the
> OSS lap fifteen years ago and nobody ever used it or maintained it.. so
> it takes a bit of digging to make it.. sort of work in current GNU/linux
> distributions.. especially since it knows nothing about Unicode.
>
> Here's the X/A+ map I came up with:
>
> // A+ keyboard layout: /usr/share/X11/xkb/symbols/apl
> // Chris Jones - 18/12/2010
>
> // Enable via:
> //      $ setxkbmap -v 10 apl
>
> default
> partial alphanumeric_keys modifier_keys
> xkb_symbols "APL" {
>
>     name[Group1]= "APL";
>
>     // Alphanumeric section
>     key <TLDE> {  [     grave,    asciitilde,     0x010000fe,     0x0100007e      ]       };
>     key <AE01> {  [         1,    exclam,         0x010000a1,     0x010000e0      ]       };
>     key <AE02> {  [         2,    at,             0x010000a2,     0x010000e6      ]       };
>     key <AE03> {  [         3,    numbersign,     0x0100003c,     0x010000e7      ]       };
>     key <AE04> {  [         4,    dollar,         0x010000a4,     0x010000e8      ]       };
>     key <AE05> {  [         5,    percent,        0x0100003d,     0x010000f7      ]       };
>     key <AE06> {  [         6,    asciicircum,    0x010000a6,     0x010000f4      ]       };
>     key <AE07> {  [         7,    ampersand,      0x0100003e,     0x010000e1      ]       };
>     key <AE08> {  [         8,    asterisk,       0x010000a8,     0x010000f0      ]       };
>     key <AE09> {  [         9,    parenleft,      0x010000a9,     0x010000b9      ]       };
>     key <AE10> {  [         0,    parenright,     0x0100005e,     0x010000b0      ]       };
>     key <AE11> {  [     minus,    underscore,     0x010000ab,     0x01000021      ]       };
>     key <AE12> {  [     equal,    plus,           0x010000df,     0x010000ad      ]       };
>
>     key <AD01> {  [         q,    Q,              0x0100003f,     0x010000bf      ]       };
>     key <AD02> {  [         w,    W,              0x010000d7,     Nosymbol        ]       };
>     key <AD03> {  [         e,    E,              0x010000c5,     0x010000e5      ]       };
>     key <AD04> {  [         r,    R,              0x010000d2,     Nosymbol        ]       };
>     key <AD05> {  [         t,    T,              0x0100007e,     Nosymbol        ]       };
>     key <AD06> {  [         y,    Y,              0x010000d9,     0x010000b4      ]       };
>     key <AD07> {  [         u,    U,              0x010000d5,     Nosymbol        ]       };
>     key <AD08> {  [         i,    I,              0x010000c9,     0x010000e9      ]       };
>     key <AD09> {  [         o,    O,              0x010000cf,     0x010000ef      ]       };
>     key <AD10> {  [         p,    P,              0x0100002a,     0x010000b3      ]       };
>     key <AD11> {  [ bracketleft,  braceleft,      0x010000fb,     0x010000dd      ]       };
>     key <AD12> {  [ bracketright, braceright,     0x010000fd,     0x010000db      ]       };
>
>     key <AC01> {  [         a,    A,              0x010000c1,     Nosymbol        ]       };
>     key <AC02> {  [         s,    S,              0x010000d3,     0x010000be      ]       };
>     key <AC03> {  [         d,    D,              0x010000c4,     Nosymbol        ]       };
>     key <AC04> {  [         f,    F,              0x0100005f,     0x010000bd      ]       };
>     key <AC05> {  [         g,    G,              0x010000c7,     0x010000e7      ]       };
>     key <AC06> {  [         h,    H,              0x010000c8,     0x010000e8      ]       };
>     key <AC07> {  [         j,    J,              0x010000ca,     0x010000ea      ]       };
>     key <AC08> {  [         k,    K,              0x01000027,     Nosymbol        ]       };
>     key <AC09> {  [         l,    L,              0x010000cc,     0x010000ec      ]       };
>     key <AC10> {  [ semicolon,    colon,          0x010000db,     0x010000bc      ]       };
>     key <AC11> {  [ apostrophe,   quotedbl,       0x010000dd,     0x010000bb      ]       };
>
>     key <AB01> {  [         z,    Z,              0x010000da,     0x010000fa      ]       };
>     key <AB02> {  [         x,    X,              0x010000d8,     Nosymbol        ]       };
>     key <AB03> {  [         c,    C,              0x010000c3,     0x010000e3      ]       };
>     key <AB04> {  [         v,    V,              0x010000d6,     Nosymbol        ]       };
>     key <AB05> {  [         b,    B,              0x010000c2,     0x010000e2      ]       };
>     key <AB06> {  [         n,    N,              0x010000ce,     0x010000ee      ]       };
>     key <AB07> {  [         m,    M,              0x0100007c,     0x010000cd      ]       };
>     key <AB08> {  [     comma,    less,           0x010000ac,     0x0100003c      ]       };
>     key <AB09> {  [    period,    greater,        0x010000dc,     0x010000ae      ]       };
>     key <AB10> {  [     slash,    question,       0x010000af,     0x0100003f      ]       };
>
>     key <BKSL> {  [ backslash,         bar,       0x010000dc,     0x010000fc      ]       };
>     key <CAPS> {  [ Caps_Lock     ]       };
>     // End alphanumeric section
>
>     include "level3(win_switch)"
>     include "level3(menu_switch)"
>
> };
>
> In fine.. you fire up an xterm.. issue a ‘setxkbmap apl’ command from
> the shell prompt and you're in business.
>
> I used it daily for about a month before I switched to APLX - aka micro
> APL.. and as I had zero problems.. So, I suspect it is 100% A+
> compatible.
>
> Initially, I thought of writing a python wrapper that would handle
> conversion from Unicode to A+'s peculiar brand of latin1 and back (among
> other things) but never had the time.

hi Chris,

i created a page dedicated to creating math symbol layouts for
different langs.
I linked to your post.

I wonder if you would let me mirror your X code on my site? Or, if you
place it on somewhere more permanent or dedicate page such as git, i'd
link to that. Thanks.

 Xah



More information about the Python-list mailing list