Installing the Programmer Dvorak Keyboard Layout on Windows

These instructions are for a U.S. English version of Microsoft Windows XP. Instructions for other languages and versions of the operating systems will vary.

Adding Programmer Dvorak to the list of available layouts

  1. Please remove previous versions before installing the new one. Installing the new version will not perform an upgrade if the older one is already present, and consequently you'll end up with two (slightly different) versions of Programmer Dvorak!

  2. Download and run the installer executable from this site.

  3. Choose Yes to install the layout.

    Note: You must be an administrator of the domain or the computer for this to succeed.

If you are installing on Windows Vista (or later), the User Account Control will ask for permissions to execute a program called "Windows host process (Rundll32)".

You can verify that this popup indeed belongs to the installer by clicking on the Details drop-down button at the lower left; the command line to be executed will look something like this:

C:\WINDOWS\system32\rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 C:\Users\JohnDoe\AppData\Local\Temp\IXP000.TMP\kbddvp.inf

The installer will then briefly show file copying progress. Upon successful installation, a message that it is complete will be shown. The layout may now be activated. If an error occurs, please consult the troubleshooting section.

Activate Programmer Dvorak

Windows 11

These instructions refer to the Windows 11 Preview, build 10.0.22000.1.

  1. Click on the Windows logo on the left side of the taskbar

  2. Click on the cogwheel Settings icon, by default to the upper right

  3. Type "Edit language and keyboard options" in the search field, and select that option when it appears in the drop-down menu

  4. Under the Preferred languages section, click on English language and then on the Options button that appear to the right

  5. Under the Keyboard section, click on Add a keyboard

  6. Select Programmer Dvorak in the list of available keyboard layouts

  7. Optionally, you may now select the other keyboard layout(s) and click their Remove button, if you don't need or want them anymore

  8. Close the settings window; the layout should now be ready to use

Windows 10

These instructions refer to Windows 10, version 2004, build 10.0.19041.264.

  1. Click on the Start menu (Windows logo down in the left corner)

  2. Click on the Settings menu option (image of a cogwheel)

  3. Choose the Time & Language, action, which has a logo of a capital letter A with a clock behind it

  4. Choose the Language option, which has the logo of a capital letter A

  5. If "English (United States)" is not in the list of languages, click Add a language. If it is already there, skip this step.

    1. Choose "English (United Status)" from the lists
    2. Click Install

  6. Choose "English (United States)" from the list of languages (it may be the only one)

  7. Click the Options button that now appears

  8. Click the Add a keyboard link

  9. Select "Programmer Dvorak" from the list

  10. If you only want to type Dvorak and not have to switch layouts, do these steps:

    1. Select the "US QWERTY" item in the list of keyboards
    2. Click the Remove button that appears

  11. Close the settings window, by pressing the X widget in the upper right corner.

  12. The layout is now activated!

In some builds the layout doesn't appear in the switcher unless the same workaround as for Windows 8 has also been applied.

Windows 8 and 8.1

Windows 8 and 8.1 seem to have a problem with custom keyboards; they install fine but are not recognized by the user interface. You can use this work-around to activate Programmer Dvorak:

  1. Follow the official procedure to add "English" as a language and activate "English (United States)" as the default layout.

  2. Run these commands at the Command Prompt:

    reg add "HKCU\Keyboard Layout\Substitutes" /v 00000409 /t REG_SZ /d 19360409 /f
    reg add "HKCU\Keyboard Layout\Preload" /v 1 /t REG_SZ /d 00000409 /f
  3. Log off and back on again.

If you want to have one of the built-in layout enabled too, you should follow the above instructions first, and then add it afterwards.

Windows XP/Vista/7

  1. Use either the Windows key or Ctrl+Esc to invoke the Start menu.

  2. Navigate through the menu choices: Start | Settings | Control Panel | Regional and Language Options

  3. Regional and Language Options dialog appears.

  4. Select the tab Languages.

  5. Press the button Details

  6. Text Services and Input Languages dialog appears

  7. Press the button Add....

  8. Add input language dialog appears

  9. From the Keyboard Layout/IME dropdown combo select: Programmer Dvorak

  10. Press OK in the Add input language dialog.

  11. From the Default input language dropdown combo choose a combination with Programmer Dvorak, for instance English (United States) - Programmer Dvorak

  12. You can select the previous layout, for instance US in the Installed Services treeview below the dropdown combo in the previous step and then click on the Remove button to make Programmer Dvorak your only keyboard layout.

  13. OK

  14. If you opted to remove the current layout, then you'll be warned that it will not be removed until you log out or reboot because it is currently in use. Just confirm this with OK.

  15. Hold Ctrl down and press Tab to go to the Advanced tab in the Regional and Language Options dialog

  16. Check the box under Default user account settings if you want to make the layout the default on the logon screen and in any subsequently created accounts.

    You must be an administrator to do this.

  17. Press OK in the Regional and Language Options dialog to conclude the selection process.

Remove the Programmer Dvorak layout from your system altogether

You should first use the installation instruction to change the layout to something else (you are familiar with), for instance regular Dvorak.

Windows 10

  1. Use either the Windows key or Ctrl+Esc to invoke the Start menu.

  2. Choose the Settings menu option.

  3. Choose the System action, which has a logo of laptop computer, in the right pane of the Settings window.

  4. Click on the Apps & features item, in the menu on the left pane.

  5. Scroll down to the Programmer Dvorak item in the list in the right pane.

  6. Click on the Programmer Dvorak item; one button appears underneath.

  7. Click the Uninstall button, below the program item.

  8. Click the Uninstall button that appears in the verification prompt.

  9. Click Yes to allow the app Rundll32 to make modifications to the system.

  10. Close the settings window by pressing the X widget in the upper right corner.

Windows 8 and 8.1

Don't. Just don't.

Windows XP/Vista/7

  1. Use either the Windows key or Ctrl+Esc to invoke the Start menu.

  2. Navigate through the menu choices: Start | Settings | Control Panel | Add or Remove Programs

  3. The Add or Remove Programs window appears.

  4. Use the Down arrow key to scroll down to locate the entry for Programmer Dvorak.

  5. Use the Tab key to focus on the Change/Remove button to the right of the entry.

  6. Use Space bar or Return to start removal.

  7. Use Alt+F4 to close the window when removal has completed.


If you get the dreaded "Installation Failed" message, you may consult the files %systemroot%\setupapi.log (on XP or earlier) or %systemroot%\inf\ (on Vista or later) for any clues.

If the launcher fails, then you can attempt to extract the files from the package into the current directory and perform a manual installation. The procedure to do so by commands to be pasted into the Command Prompt accessory is given below.

These instructions must be executed in an elevated Command Prompt. This can be done by pressing Shift+F10 when having Command Prompt highlighted under the Accessories menu and then from the menu that appear selecting Run as... and then Administrator in the next dialog (Windows XP) or Run as Administrator (Windows Vista/7). On Windows Vista/7 you can also do this by typing cmd in the Search Bar and then press Ctrl+Shift+Enter.

kbddvp-1_2_7-i386.exe /C /T:"%CD%"
copy kbddvp.inf "%SystemRoot%\inf" /y
  copy kbddvp32.dll "%SystemRoot%\system32\kbddvp.dll" /y
) else (
  copy kbddvpww.dll "%SystemRoot%\syswow64\kbddvp.dll" /y
  copy kbddvp64.dll "%SystemRoot%\system32\kbddvp.dll" /y
copy NUL kbddvp.reg /y
echo REGEDIT4 >> kbddvp.reg
echo [HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\19360409] >> kbddvp.reg
echo "Layout Text"="Programmer Dvorak" >> kbddvp.reg
echo "Layout File"="kbddvp.dll" >> kbddvp.reg
echo "Layout Id"="001C" >> kbddvp.reg
regedit kbddvp.reg