I would be interested in switching to Dvorak keyboard layout. The problem that everyone runs into is that common programming* keyboard shortcuts, such as:
Will no longer be the keys on the bottom left of the keyboard, since the Dvorak layout has C, V and Z in different locations.
The Mac has solved this problem by having a keyboard layout called "Dvorak - Qwerty Command", where the keyboard is normally in Dvorak mode, but if you press a command key the mappings temporarily revert to Qwerty.
Does such a feature exist on Windows? It has been suggested that such a feat can be accomplished using the Microsoft Keyboard Layout Creator, but I won't pretend to understand all that.
In other words, Stackoverflow users, is this a problem that has already been solved?
* The joke being that the most common programming tasks are Ctrl+C, Ctrl+V.
Dvorak - QWERTY ⌘: Temporarily changes the layout to QWERTY when you press and hold the Command key. Dvorak - Right-Handed: The most commonly used keys are under your right hand.
Dvorak proponents claim that it requires less finger motion and as a result reduces errors, increases typing speed, reduces repetitive strain injuries, or is simply more comfortable than QWERTY.
If you are thinking about switching, it is completely free but takes a lot of practice. You do not need to buy a special keyboard to type Dvorak with – you can simply change it on your computer and use your standard QWERTY keyboard.
Changing the keyboard layout in Windows 8 and 10Under the Clock, Language, and Region section, click Change input methods. Click the Options link for your keyboard. Click Add an input method. Select the Dvorak layout you want to use.
AutoHotKey to the rescue. This will use DVORAK when typing normally and when holding Shift. While Ctrl or Alt is held down QWERTY behaviour takes over.
;Sorry about the messed up syntax highlighting.
;Disclaimer: may not work at all.
#UseHook
-::Send {Blind}[
=::Send {Blind}]
q::Send {Blind}'
w::Send {Blind}`,
e::Send {Blind}.
r::Send {Blind}p
t::Send {Blind}y
y::Send {Blind}f
u::Send {Blind}g
i::Send {Blind}c
o::Send {Blind}r
p::Send {Blind}l
[::Send {Blind}/
]::Send {Blind}=
a::Send {Blind}a
s::Send {Blind}o
d::Send {Blind}e
f::Send {Blind}u
g::Send {Blind}i
h::Send {Blind}d
j::Send {Blind}h
k::Send {Blind}t
l::Send {Blind}n
`;::Send {Blind}s
'::Send {Blind}-
z::Send {Blind}`;
x::Send {Blind}q
c::Send {Blind}j
v::Send {Blind}k
b::Send {Blind}x
n::Send {Blind}b
m::Send {Blind}m
,::Send {Blind}w
.::Send {Blind}v
/::Send {Blind}z
;capitalise
+-::Send {Blind}{{}
+=::Send {Blind}{}}
+q::Send {Blind}"
+w::Send {Blind}<
+e::Send {Blind}>
+r::Send {Blind}P
+t::Send {Blind}Y
+y::Send {Blind}F
+u::Send {Blind}G
+i::Send {Blind}C
+o::Send {Blind}R
+p::Send {Blind}L
+[::Send {Blind}?
+]::Send {Blind}{+}
+a::Send {Blind}A
+s::Send {Blind}O
+d::Send {Blind}E
+f::Send {Blind}U
+g::Send {Blind}I
+h::Send {Blind}D
+j::Send {Blind}H
+k::Send {Blind}T
+l::Send {Blind}N
+;::Send {Blind}S
+'::Send {Blind}_
+z::Send {Blind}:
+x::Send {Blind}Q
+c::Send {Blind}J
+v::Send {Blind}K
+b::Send {Blind}X
+n::Send {Blind}B
+m::Send {Blind}M
+,::Send {Blind}W
+.::Send {Blind}V
+/::Send {Blind}Z
Eventually this may become a shot in the foot because it cannot be used with GNU/Linux, so another solution may be required if you ever try it out.
Dvertkey, an AutoHotKey script, caters for more scenarios than any other Windows solution I've used.
This is an old question, but I've kept coming back here over the years and no solution has been without annoyances. Thanks to ftvs for the AutoHotKey answer that inspired me to write this script.
I've been a dvorak user for sixteen years, and for years I've used the various alternative keymaps mentioned in this thread, but all of them fall down when using a number of recent incarnations of Microsoft applications, such as the Office apps and SQL Server Management Studio. They seem to ignore Windows' own keymaps when using meta keys, rendering the hybrid layouts useless. AutoHotKey gets around this to ensure I get exactly what I want in any application.
While I agree with the sentiment of Sam Harwell's advice for new dvorak users, I disagree with the suggestion of not changing shortcut characters. Good keyboard shortcuts are about their positions on the keyboard more than the character that represents it. These are often chosen with good reasons (eg. the common X C V being cut-copy-paste, together at the bottom of the keyboard) and there's no reason to lose that good shortcut positioning when moving to Dvorak. This script will retain that.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With