v.wales%ucla-locus@sri-unix.UUCP (02/03/84)
From: Rich Wales <v.wales@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@UCLA-LOCUS>
gwyn%brl-vld@sri-unix.UUCP (02/03/84)
From: Doug Gwyn (VLD/VMB) <gwyn@brl-vld> SCM used to make a Dvorak typewriter, maybe they still do. Seems to me the "right" place for keyboard mapping is in the terminal keyboard logic. Then you need no special arrangements at all in the operating system. A Dvorak mapping would be a simple stackable line discipline (just index into a mapping table using the typed character as an index).
kfk@ccieng2.UUCP (02/09/84)
---------- From sri-unix!gwyn@brl-vld Thu Feb 2 17:31:08 1984 Subject: Re: Dvorak keyboard mapping Seems to me the "right" place for keyboard mapping is in the terminal keyboard logic. Then you need no special arrangements at all in the operating system. ---------- Personally, I'd like to see a dvorak mode in the kernel. There are, of course, many problems with it, such as what happens to control keys in general, since (as another person said) ^S/^Q have particular meanings for such terminals as the VT100, and if you decide to have the control keys go with the regular keys, what happens to ^Z, since I know of no terminals which generate something called ^/ (Z and / trade places on dvorak key- boards). But putting it into the tty driver would make it available in some form to all terminals, which I would like very much. (My Concept 108 cannot be downloaded for a Dvorak mapping.) Of course, those terminals which are downloadable for such things can be very useful. We also use Zentec 8001 terminals (sorry, if you were eating) which we can download so that it interprets everything in dvorak positions, including things like the Z-/ problem. That's nice; pity that I don't like any of the other functions of a Zentec. P.S. The comments contained herein on the subject of Zentecs are my own and are in no way representative of my employer. -- Karl Kleinpaste ...![ [seismo, allegra]!rochester!ritcv, rlgvax]!ccieng5!ccieng2!kfk