I like Roland Kaufmann's Programmer Dvorak keyboard layout however I dislike the fact that he reverses the direction of the numeric keypad. This is an installable solution that slightly backtracks from his improvements. This repository was originally called "programmer-dvorak-normal-keypad" but due to objections from Roland himself, I have renamed this to "coders-dvorak-regular-keypad". The layout name in the releases folder will be adjusted when time permits.
To get an idea, here is a comparison
Kaufman's original layout with "improved" keypad layout
My normal keypad version
If you prefer my version, continue on.
- Go to the Release directory section.
- Download either the "English Singapore" or "English US" version relevant to your operating system Windows/Mac.
- Unzip the file
- Run
msi
orsetup.exe
- Go to Control Panel -> Language
- Select your language -> Option -> Add an input method
- Search for
Programmer Dvorak - Normal Keypad
and Add. If the new layout is not visible, you may need to reboot your machine and start from Step 4.
Install the language pack. You can use the registry but Powershell works too.
Open Powershell as Administrator. Replace 00000804
with the ID of your language.
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804'
Layout Display Name : @C:\Windows\system32\input.dll,-5072
Layout File : ProgDv.dll
Layout Text : Chinese (Simplified) - US Keyboard
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
PSChildName : 00000804
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804' -Name 'Layout File' -Value 'ProgDv.dll'
# Optional
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804' -Name 'Layout Text' -Value 'Chinese (Simplified) Programmer Dvorak'
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804'
Layout Display Name : @C:\Windows\system32\input.dll,-5072
Layout File : ProgDv.dll
Layout Text : Chinese (Simplified) Programmer Dvorak
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
PSChildName : 00000804
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry
Sign out and in again and the changes should take effect.
- Copy the
*.bundle
file to~/Library/Keyboard Layouts
for the current user and*.keylayout
to/Library/Keyboard Layouts
for login screen purposes. - Go to System Preferences, Keyboard, Input Sources, click "+", select English, select
Programmer Dvorak - Normal Keypad
Go to Control Panel: "Open "region" > then on the "administration" tab > click "copy settings" > then check the box "for home screen & new users"."
If you need to modify the layout for some reason...
- Install the Microsoft Keyboard Layout Creator
- Open the
.klc
file you wish to modify. I can't seem to view the keypad in MKLC though.
You should see something like this:
- Set current working directory
- Once you are done, click Project->Build DLL and Setup Package.
- Go to your working directory to retrieve the install folder
- Install Ukelele
- Open the
.keylayout
file you wist to modify. You may wish to change the keyboard type to view the keypad. View -> Keyboard Type -> Third party.
You should see something like this:
- Save as bundle