Dvorak keyboard mapping

v.wales%ucla-locus at sri-unix.UUCP v.wales%ucla-locus at sri-unix.UUCP
Fri Feb 3 08:05:53 AEST 1984


From:            Rich Wales <v.wales at ucla-locus>

The Dvorak keyboard (alluded to in a recent series of messages) looks
interesting.  I've been touch-typing since elementary school and can do
70 wpm on a terminal, but I intend to try Dvorak if I can get a reason-
able hardware or software implementation.

If one is going to make a "standard" terminal keyboard act like a Dvorak
keyboard, it seems obvious to me that the required mapping can be done
ONLY in the kernel, both for reasons of efficiency and software trans-
parency.  Piping terminal input through a filter simply will not work,
for numerous reasons which I'm sure lots of people out there can explain
if necessary.  I know some people on this list are opposed to ANY non-
standard kernel mods, and they are often right -- but something like
this that cannot reasonably be done any other way must be an exception.

One general approach would be to allow the user to specify a totally
arbitrary mapping via an appropriate "ioctl".  This would have other
advantages, even for those who prefer to use the "standard" keyboard --
namely, one could remap the special characters.  (How many of you have
dreaded having to use a new kind of terminal because all the specials
were in different places on the keyboard?)  While it is true that a
careless user could mess himself up via a flaky mapping, this doesn't
seem to be an excuse not to make the facility available.

If the above method is not felt to be desirable, then the Dvorak mapping
could be built into the TTY driver and enabled/disabled via a new set of
"ioctl"s.  However, it appears to me that one would need at least two
different flavors of Dvorak keyboard mapping, owing to the nonuniform
placement of special characters on standard terminal keyboards.  I am
thinking in particular about the character which shares the semicolon
key.  Some terminals (as well as most typewriters I have seen) have the
colon on top of the semicolon, but a disturbingly large number of termi-
nals put the plus sign on top of the semicolon.  Since the key in ques-
tion is the "S" key on the Dvorak keyboard, this inconsistency cannot
simply be swept under the rug.

The other punctuation-mark keys which are used as letters on the Dvorak
keyboard seem to be stable.  On every terminal I have seen, less-than is
on top of comma, greater-than is on top of period, and question-mark is
on top of slash.

So here is what I would try doing.  First, I would start out with a
more-or-less "vanilla" Dvorak arrangement (note, though, where I have
put "<", ">", and "/"):

+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|     |     |     |     |     |     |     |     |     |     |
|  7  |  5  |  3  |  1  |  9  |  0  |  2  |  4  |  6  |  8  |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
  |  :  |  <  |  >  |  P  |  Y  |  F  |  G  |  C  |  R  |  L  |
  |  ?  |  ,  |  .  |     |     |     |     |     |     |     |
  +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
    |  A  |  O  |  E  |  U  |  I  |  D  |  H  |  T  |  N  |  S  |
    |     |     |     |     |     |     |     |     |     |     |
    +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
      +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
      |  ;  |  Q  |  J  |  K  |  X  |  B  |  M  |  W  |  V  |  Z  |
      |  /  |     |     |     |     |     |     |     |     |     |
      +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

Second, I would provide an alternate mapping for use with those term-
inals which pair up "+" (instead of ":") with the semicolon.  The main
body of the keyboard would still look exactly like the chart above; to
get a plus sign, the user would hit whatever key he would previously
have used to get a colon.

I wouldn't move the control characters around (i.e., control-C would be
typed by holding down CONTROL and hitting the key labelled "C" on the
original, standard keyboard).  I see no way around this approach, since
the codes generated by the "extra" keys (TAB, BS, ESC, etc.) are hard-
wired.  Further, some terminals (such as the VT100) have a "builtin"
understanding of ^S and ^Q as flow controls which would be incompatible
with any attempt to remap these codes in software.

Any special characters on keys outside the 40 "main" keys shown above
would be untouched (with the possible exception of mapping ":" to "+",
as described above).  I would also make no attempt to remap the specials
on top of the digit keys, since different terminals are quite inconsis-
tent with regard to their placement.  Thus, for example, the parens on
my terminal (a VT100) are on top of the "9" and "0"; treating my key-
board as if it were a Dvorak would therefore find me hitting shift-6 and
shift-8 for parens (same physical keys, different names).

By the way, are there any universally accepted standards for the place-
ment of control characters on Dvorak terminal keyboards?  If anyone
cites an ISO standard, please also indicate how I can get a copy of it.

The ideal solution, of course, would be to use a specially designed
Dvorak keyboard, or else a terminal whose keys can be dynamically down-
loaded.  And, to repeat what I said earlier, the best software solution
in my view would be a completely generalized input-mapping facility.

To put out some possible flames before they start:

(1) I'm a total newcomer to the Dvorak keyboard.  My information about
    the keyboard layout is based on some old books in the UCLA library,
    and I would welcome any corrections or comments from anyone who is
    already familiar with Dvorak.  References to recent books or maga-
    zine articles would be welcomed.

(2) I know that Harvard has already done some work on Dvorak support,
    and I've sent them an inquiry about their mods, but I haven't yet
    heard anything back.  So please don't anyone say, "Harvard already
    did Dvorak; ask them for info".

(3) Yes, I realize that the login/password sequence would still have to
    be done using the "standard" keyboard layout.  All I can say is that
    I'm not going to turn down a chocolate sundae just because I can't
    have a maraschino cherry on top.  (For that matter, I happen to hate
    maraschino cherries -- but that's another issue altogether.)

-- Rich <v.wales at UCLA-LOCUS>



More information about the Comp.unix.wizards mailing list