This is a modified dvorak layout. The layout is as follows:

Unshifted      Shifted
------------   ------------
1234567890-=   !@#$%^&*()_+
',.pyfgcrl[]   "<>PYFGCRL{}
aoeuidhtns;    AOEUIDHTNS:
/qjkxbmwvz     ?QJKXBMWVZ

Essentially, it combines the dvorak alphabet layout with some of the QWERTY
punctuation. It seems more useful because writing source code often involves
typing a lot of punctuation.

Included in this archive should be several files:
    dvorak.com        For use with DOS.
    dvorak.kmap.gz    For use with GNU/Linux (text mode).
    kbddv.dll         For use with 32-bit Windows NT operating systems
                      (including Windows 2000, 2003, and XP).
    kbddv_x64.dll     For use with 64-bit Windows NT operating systems.
    kbddv.kbd         For use with Windows 9x operating systems (including
                      Windows 95, 98, and ME).
    my_dvorak         For use with X Windows (method 1).
    dvorak.xmodmap    For use with X Windows (method 2).
    source/           A directory containing source code for the NT DLLs.

Here's how to use it (from memory as best I can remember it):

(DISCLAIMER: This software comes with no warranty. If it breaks your system,
don't get angry at me. That said, I've used and tested all of these versions
in my progression from DOS, through Windows 9x, NT, 2000, XP, 2003, and
GNU/Linux. They've all worked for me.)

DOS
---
Run dvorak.com. This will install a small TSR which remaps the keyboard.
It works most of the time, but some applications install their own keyboard
handlers, which may override or conflict with mine. A cleaner and more
compatible solution might have been to figure out DOS' internationalization
support, but oh well.

Windows 95, 98, and ME
----------------------
Replace the kbddv.kbd file in your Windows installation with the provided
version. Select the Dvorak layout in Windows' keyboard setup. You may need
to reboot for this to take effect.

32-bit Windows NT, 2000, 2003, XP, Vista (method 1, recommended)
----------------------------------------------------------------
Edit the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409\Layout File

1. Change its value from KBDDV.DLL to KBDPDV.DLL
2. Take the kbddv.dll (or kbddv_x64.zip if you use 64-bit Windows) from the
   zip file and rename it kbdpdv.dll
3. Place the kbdpdv.dll file in your %WINDIR%\system32\ folder. Select the
   Dvorak layout in Windows' keyboard setup. You may need to reboot for this
   to take effect.

This hijacks the standard Dvorak layout. Note that you can actually hijack
any keyboard layout ending in 0409 (eg, 00030409, 00040409, etc).

32-bit Windows NT, 2000, 2003, XP (method 2, not recommended)
-------------------------------------------------------------
1. Replace the kbddv.dll file in your %WINDIR%\system32\ folder with the
   provided version.
2. Select the Dvorak layout in Windows' keyboard setup. You may need to
   reboot for this to take effect.

Note that Windows File Protection is likely to come into play. You can try
copying the file to %WINDIR%\system32\dllcache\ and %WINDIR%\system32\ in
that order. Windows will probably complain about the file being replaced with
an unauthorized copy. That means it worked. If it doesn't complain, then it's
probably silently restored the kbddv.dll file from an official version on a
CD, network share, or folder on your disk.

It's possible to disable Windows File Protection on some systems, but not
others. Anyway, I don't recommend that, but feel free to search Google for
details. If you can't work around Windows File Protection, please use
method 1, above. It's the recommended method, anyway.

GNU/Linux (text mode)
---------------------
From the shell, simply run:
  $ loadkeys <dvorak.kmap.gz
If your version of loadkeys(1) can't handle gzipped input, try this instead.
  $ gzip -dc dvorak.kmap.gz | loadkeys

You'll probably want to add that to a startup script so you don't have to
type it every time.

X Windows (xfree86, method 1)
-----------------------------
This method is more complex, but cleaner and better than method 2. However,
it requires root access and changes the layout for all users (unless you can
make a user-local configuration file). It may also be specific to xfree86.

First, copy my_dvorak to /usr/lib/X11/xkb/symbols/.
Then, edit your /etc/X11/XF86Config-4 file (it may be called
/etc/X11/XF86Config). Find the section describing the keyboard. Look for
something similar to this:

  Section "InputDevice"
    Identifier "Generic Keyboard"
    Driver "keyboard"
    ...
  EndSection

You'll probably see several lines like this:
  Option  "XkbRules"    "xfree86"
  Option  "XkbSymbols"  "XXX"
  Option  "XkbGeometry" "YYY"
  Option  "Xkb..."      "..."

Remove those and add the following lines.
  Option    "XkbRules"    "xfree86"
  Option    "XkbSymbols"  "XXX+dvorak+my_dvorak"
  Option    "XkbGeometry" "YYY"

"XXX" is whatever was in your "XkbSymbols" from before (or "us(104)" if
nothing), and similarly, "YYY" is whatever "XkbGeometry" you were using
before (or "pc(104)" if nothing). In my configuration file, I have the
following:

  Option    "XkbRules"    "xfree86"
  Option    "XkbSymbols"  "us(pc104)+dvorak+my_dvorak+inet(microsoftpro)"
  Option    "XkbGeometry" "pc(pc104)"

The inet(microsoftpro) is just adding some special multimedia keys...
If you think that's too complicated, try the second method.

X Windows (method 2)
--------------------
Run the following:
  $ xmodmap dvorak.xmodmap

It's not a perfect keyboard mapping, but is pretty good. You may want to add
that command to an X startup script so you don't have to type it every time.


Well, that's it. If you need any help, feel free to contact me at
adam@adammil.net

Good luck!
