Adam Twardoch <list dot adam at twardoch dot com> wrote:

> Do you know if there are human-readable versions of Windows and/or
> MacOS keyboard layouts available somewhere?
>
> I'm looking for a way to compile a table that could look a bit like
> the following:
>
> Platform Language    Layout    Unicode    Keystroke
> Windows    Polish         Polish (Programmers)     0105    AltGr+A
> Windows    Polish         Polish (Programmers)     0041    A
> ...
>
> where I could, for example, look up which exactly keyboard layouts let
> the user input, say, a with acute, and how he can do that.

and Michael (michka) Kaplan <michka at trigeminal dot com> responded:

> Such a format for Windows would be quite inadequate since it is
> missing many things, such as:

I was sorry to see Adam's idea shot down so quickly, because it seemed
like a pretty good thought to me, assuming the practical limitations are
understood.

Michael is right, of course, that the differences between keyboards
amount to more than just the basic layout and Shift and AltGr keys.
There are custom shifting keys, dead keys, and unusual uses of Caps
Lock, not to mention Far Eastern IMEs.  But I don't think the whole idea
needs to be scuttled because of these problems.  Let's see if we can
expand Adam's chart to cover some of these extra needs.

> 1) The version of Windows in which it first shipped (there were minor
> differences in what was in 9x vs. NT, and on NT some characters were
> added to keyboards in later versions).

If this is really necessary -- aren't updated drivers available? -- it
can be added as another column.

> 2) The fact that many keystrokes produced more than one keystrokes
> (called ligatures there athough the technology can apply to code point
> combinations that do not, in fact make up ligatures)

The "Unicode" column in Adam's table would have to allow combinations of
code points.  Keyboards for Indic scripts, in particular, frequently
have keys that generate at least three Unicode characters.  This is the
"1-to-many" problem.

> 3) The fact that in many cases combinations of keystrokes produce a
> single code point (called dead keys) -- best described by the many
> combining characters that go with individual base characters

Similarly, the "keystroke" column would need to be expanded to handle
sequences of keys.  This is the "many-to-1" problem.

> 4) No completely consistent description of OEM keys that is based on
> letters that would work for all keyboard hardware

If Michael means what I think he means, the solution is to use ISO 9995
terminology (at least for the basic letter-generating keys, if not for
shifting keys).  Don't say "A" for the keystroke, say "C01" (or "D01" if
you're talking about a French keyboard).  It's really not that hard to
get used to this naming convention.

> 5) Naming inconsistencies between different versions (rare but present
> on occasion)

You mean the name of the keyboard layout?  Any examples that would make
the list unusable?

> 6) No good way to explain when CAPS lock is being used for casing,
> etc.

Good point.  I remember hearing that German keyboards don't use Caps
Lock the same way U.S. keyboards do; apparently they apply Shift to all
keys, not just letters.  I don't know how to handle this, but I'll bet
someone could figure it out.

> 7) No way to explain SGCAPS use of the CAPS lock, used by Hebrew,
> Czech and others.

Can't comment, since I'm not familiar with this issue.

> 8) No way to describe "custom" shift keys like seen in the
> [unfortunate] Canadian Multilingual Standard keyboard

Instead of saying "AltGr+A", assign one column to each special shifting
key.  And so on.

-Doug Ewell
 Fullerton, California
 http://users.adelphia.net/~dewell/


Reply via email to