I've been using the dvorak keyboard layout since about Winter of 99. I have had a lot of people ask me questions about it, so I decided I'd just collect all the answers here. So, far I have
Getting Dvorak keyboard under X is almost too easy. You just use xmodmap to remap the keys on your keyboard. If you use "keysym ... = ..." rather than "keycode ... = ..." you can even do it portably. That's what the two keymaps below do.
Note that the Dvorak-to-QWERTY xmodmap has had less use, so I am less likely to know about problems with it.I modified the "keymap" distribution I found at ftp://alpha.gnu.org/gnu/hurd/contrib/marcus slightly: I augmented the Perl script to recognize more values, and wrote Dvorak map that would work nicely with Emacs. You can get my keymap tarball which includes those changes. Or, you can simply get a patch against the original distribution.
FreeBSD comes with a very nice dvorak keymap for the console (installed below /usr/share/syscons/keymaps by default). Unfortunately, that map doesn't play nicely with Emacs (Yes, I am an Emacs addict -- can you tell?), so I wrote a script to merge the letters from us.emacs.kbd into us.dvorak.kbd. The resulting keymap lacks a few keybindings (I realized M-Enter, does not work as expected in Emacs, for example), but should be a good starting point none the less. Certainly beats writing things out by hand.
You need the kbddv.dll in your PATH. Then you can use the keyboard applet in the Control Panel to change the keyboard layout (click the "Input Locale" tab, select "US", and click the "Properties" button. I will not put kbddv.dll on this site, sorry.
The installations of Windows2000 I have seen to date come with the files necessary to use the Dvorak keymap pre-installed. Just use the Keyboard Layout applet in the control pannel to change the layout.
You need the kbddv.kbd file from the Windows98 distribution. Use the "extract" tool to find out which .cab kbddv.kbd lives in.