Share via


Windows CE & Dvorak

Background
IgorD recently posted an amazingly useful entry, which is always my hint to post something useless above him so he doesn't get top billing too long :).

Somehow the Dvorak keyboard came up in conversation recently.  I've used it for the last 7 years and haven't looked back.  I can still do QWERTY reasonably well because for a long time CEPCs only had QWERTY keyboard drivers and it was before we had a telnet server, so I had to do lots of QWERTY still.

One day I decided that we needed to take CE out of the 19th century.  I figured out how the keyboard driver worked, filled out the scan code table, got permission from begrudging mgmt, and then checked in the dvorak driver.  Doing the *official* dvorak Driver for an OS is the dream of any Dvorak guy who's also a systems programmer.

I don't know if my version shipped, though.  Steve Schrock, who owned keyboard stuff back then, figured out a way to get the scan tables directly from the WinXP keyboard driver and that's the Dvorak driver that CE ships today.  I think Steve removed my version to spite me :), though had I not done this there wouldn't be the driver in the 1st place so I'll still take a little credit here.

There's more Dvorak users on CE than you may think.  Back in '99 there were 2 other engineers and a PM in my office doing a massive code review of WinCE RDP changes back into Win2000.  One of the other guys had to sit down and type at my keyboard (he may have invented a reason) and when he sat down he typed perfectly.  My jaw dropped, as usually people type out a sentence of gibberish before we remember to switch the keyboard.  He was a Dvorak guy of course and had realized I was one by watching me type.  The other engineer laughed and it turns out he's a Dvorak guy too.  The poor PM said something to the effect that she was in the room with the 3 biggest losers in MS, which I'll let pass without comment.

Adding Dvorak driver to CE
If you want Dvorak (this is General Embedded only, not PocketPC/Windows Mobile) then you can set SYSGEN_KBD_US_DVORAK=1.  To make it your default layout you'll need this as well.

[HKEY_CURRENT_USER\Keyboard Layout\Preload]
   @="00010409"

[HKEY_CURRENT_USER\Keyboard Layout\Preload\1]
    @="00010409"

Random links
https://gigliwood.com/abcd/abcd.html -- This is how I learned Dvorak - it's very good.  I did it in Jan 99, in the few weeks I had after graduating college and before coming to MS.

https://www.visi.com/~pmk/evolved.html - This guy figured out a genetic algorithm to determine the optimal keyboard pattern and learned that Mr. Dvorak was a pretty smart guy.

https://hardware.slashdot.org/article.pl?sid=02/07/06/1244204&mode=thread&tid=137 - Discussion

https://blogs.msdn.com/cenet - Normally a good blog for discussing Windows CE networking; it has been free of complete randomness until today.