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)
// `