views:

930

answers:

4

i would be interested in switching to Dvorak keyboard layout. The problem that everyone runs into is that common programming(1) keyboard shortcuts, such as:

  • Ctrl+C
  • Ctrl+V
  • Ctrl+Z

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([1]).

Does such a feature exist on Windows? It has been suggested that such a feat can be accomplished using the Microsoft Keyboard Layout Creator.([2]) But i won't pretend to understand all that.

In other words, Stackoverflow users, is this a problem that has already been solved?


(1) the joke being that the most common programming tasks are Ctrl+C, Ctrl+V.

+4  A: 

I use Dvorak exclusively now, including all shortcuts. Here's how and why I got where I am:

I started the change shortly into Christmas break 2.5 years ago. I wasn't in school or work for a bit, so poor typing abilities wouldn't negatively affect my day-to-day activities. I made a pact with myself: no QWERTY, at all, until my Dvorak typing reaches my current QWERTY abilities. That was by far the best and most painful decision. Every day I spent 2-3 hours training for the keyboard. It took 3 weeks to reach 50WPM, and for some reason I capped out there for like 2 months! I kept training, and about 3 months in I surpassed my original normalized efficiency (counts accuracy) from when I used QWERTY. Now I'm marginally faster than when I used QWERTY, but more than anything I've found that my hands no longer hurt at the end of a long day. It makes all the difference in the world.

Rules:

  • DO NOT rearrange the keys on your keyboard. It's touch typing, stop looking! Moving the keys messes up the critical f/j hints and changes the keyboard feel, all to provide you with visual information you'll never use.
  • DO NOT switch back to QWERTY while you are initially learning Dvorak "so you can get something typed faster."
  • DO practice every day with an online typing software. It's been a long time and unfortunately I don't remember where I was practicing. :(
  • Initially your fingers will hurt after typing on Dvorak. I had lots of problems with the l key initially, but it was because I simply wasn't used to it and the pressure of learning kept me tense. Things will get better as you improve, and before you know it you'll be more comfortable on Dvorak than you were on QWERTY.

Suggestions:

  • DO NOT use the Dvorak/QWERTY combo mode like you mentioned above. Dvorak Assistant lets you use Dvorak wherever you want, and to keep shortcuts consistent for you personally between computers, use the same shortcut characters (in their new locations).

Observation:

  • Since it's so much easier for peoeple to learn Dvorak first, and it results in fewer injuries later in life, why on earth aren't we teaching this in our elementary schools??? I honestly believe that it is incorrect to teach "proper typing" to these students with them sitting behind a QWERTY layout. On top of that, the classes already put stickers over all the keys to prevent peeking, so really what is the point of teaching QWERTY? I suppose I'm frustrated because my instructed touch typing on QWERTY is the primary reason it took me so long to learn typing on a real keyboard later.
280Z28
A: 

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

+-::{Blind}{{}
+=::{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.

ftvs
+1  A: 

Hi,

I was in the same situation, so I wrote this:

http://dvorak-qwerty.googlecode.com

Hope it helps!

(Maybe using the keyboard layout creator would be better but I didn't want to figure it out either!)

Kenton Varda