Windows下自定义Dvorak键盘布局

Customize Dvorak keyboard layout under Windows

几经波折总算是搞定了windows下的Dvorak布局(不过稍有修改)
先从Dvorak的布局图开始说吧

与QWERTY不同的是Dvorak把最常用的键都分布在了中行,手的移动远远没有QWERTY像弹钢琴一样夸张。
下面关于QWERTY的描述(选自维基百科):

QWERTY”是主键盘字母区左上角6个字母的连写。
QWERTY键盘安排次序的原则,是减少打字机在打字时连动杆之间的挤压及故障发生率的状况,因而要把常用字母隔开(不过像“E”“R”就在一起)。

现在的99%的输入设备都不会卡住了,但是因为QWERTY使用太广泛了,就一直延续而来。这也是这篇文章写出来的原因,就是改变。

好的下面步入正题,我现在使用的i-rocks键盘如下图:

如果要改成Dvorak的键盘布局,首先要抠键帽,把键帽换成Dvorak布局。
换键帽+清灰花了半个小时,成果如下:

OK,搞定了。不过这才弄好了最简单的一步,还有软件配置呢.

Windows下布局修改方案

使用AutoHotKey映射

AutoHotKey这个神器在这里就赘述了,主要讲一下脚本。
如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Suspend
F12::Suspend
1::[
2::7
3::5
4::3
5::1
6::9
7::0
8::2
9::4
0::6
-::8
=::]
q::/
w::,
e::.
r::p
t::y
y::f
u::g
i::c
o::r
p::l
[::'
]::=
;a::a
s::o
d::e
f::u
g::i
h::d
j::h
k::t
l::n
`;::s
'::-
z::`;
x::q
c::j
v::k
b::x
n::b
;m::m
,::w
.::v
/::z

安装AutoHotKey之后,把上面的代码保存为*.ahk,运行即可。

该脚本默认状态是Suspend(关闭),按F12可以切换开关。(因为也比较常用笔记本键盘)

修改注册表键值

其实windows下本身是有Dvorak布局的:控制面板-时钟、语言和区域-区域和语言-更改键盘或其他输入法-键盘和语言-更改键盘-添加(图如下):

只有这几种还是挺不爽的(因为我根据我的习惯改了几个键位),关键是搜狗拼音不支持Dvorak布局,虽然盲打也可以,但是总觉得使用Dvorak的布局用qwerty总感觉怪怪的,于是我开始找键盘映射的方法,最开始先找到了一份《键值对照表》(如下):

就是这样的(字节码太多了,我只放上来一部分)

然后计算键位移动方式,本来想做个思维导图帮助键值映射的,没想到这玩意儿实在太绕了。
就像这样:

1
;>Q>X>B>N>L>P>R>O…..直到键值全部映射一遍费了好大功夫,一不小心就绕晕了。

修改键位映射的方法如下:

例:Caps Lock键(字节码为:3A 00)更改为左边的Ctrl键(字节码为:1D 00),则填写 :1D 00 3A 00

这就好办了(一点都不好办,期间改错了一个代码导致’S‘和’-‘错位,打起字来太郁闷了。
废话不多说,成品代码如下:

键位修改版:

1
2
3
4
5
6
7
8
9
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KeyboardLayout]
"ScanCodeMap"=hex:00,00,00,00,00,00,00,00,22,00,00,00,2d,00,30,00,24,00,2e,00,\
11,00,33,00,33,00,11,00,12,00,20,00,34,00,12,00,1b,00,0d,00,0d,00,1b,00,16,\
00,21,00,17,00,22,00,20,00,23,00,1a,00,0c,00,2e,00,17,00,23,00,24,00,14,00,\
25,00,31,00,26,00,35,00,1a,00,30,00,31,00,13,00,18,00,26,00,19,00,2f,00,34,\
00,27,00,10,00,0c,00,28,00,19,00,13,00,18,00,1f,00,1f,00,27,00,2c,00,35,00,\
15,00,14,00,22,00,16,00,25,00,2f,00,10,00,2d,00,21,00,15,00,28,00,2c,00,00,\
00,00,00

保存为*.reg运行注销即可(好奇心重的不要乱试,导致你突然变得打字巨慢不要怪我)。还有就是修改版键位不是标准的Dvorak Classics键位,区别就是’和;位置互换了。

不过我也写了重置的(这个是真的简单多了)。如下:

1
2
3
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KeyboardLayout]
"ScanCodeMap"=hex:00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00

同理,保存为*.reg运行注销即可。

这种方式修改布局最大的弊端就是万一又想用QWERTY布局了,就只能运行上面的重置脚本,然后再注销才行。如果想要两种布局无缝切换的话还是强烈推荐使用AutoHotKey版本。

2014.12.22

写自Dvarak

试用Dvorak布局几个月的感觉

自从用了几个月的Dvorak Classics布局之后(当然去机房的话难免还是要使用QWERTY布局的),体验良好,最直观的改变是打字变成一件很爽的事,不需要手弹钢琴一样动来动去,只需要手指活动了,这种感觉是非常爽的,基本盲打无压力了。至于会不会影响QWERTY的打字手感呢,这绝对是肯定的啊,想到刚开始使用Dvorak布局度时候,刚熟悉了Dvorak布局竟然把QWERTY键盘布局给忘掉了,打字也随之变得很慢(其实也不算是遗忘掉了,只是暂时的指尖记忆导致Dvorak的布局信息刻印在脑海里了,与之有冲突的QWERTY布局的“指尖记忆”暂时忘却了而已),当时就担心万一邯郸学步就亏大了。不过,就算用了这么长时间的Dvorak现在也是可以使用QWERTY盲打无压力的(个别Dvorak高频键位仍然有些别扭的(指尖记忆)),或许时间越长可能记得更清楚了呢(指尖记忆+深度记忆)。
本来实践这种布局我也是有很大的怀疑成分,尤其是担心邯郸学步式的结局,期间差点几经中断,但是当时心里总是在想“做一件事就按自己认为正确的方式坚持做下去”,算是支持自己的一个信念。其实这段时间也算度过了艰难的选择期,因为做好了选择之后,很多事情可以做的更好。

2014.05.10

写于Dvorak Classics

全文完,若有不足之处请评论指正。

微信扫描二维码,关注我的公众号。

本文标题:Windows下自定义Dvorak键盘布局
文章作者:查利鹏
发布时间:2015/08/19 11:01
本文字数:1.7k 字
原始链接:https://imzlp.com/posts/50343/
许可协议: CC BY-NC-SA 4.0
文章禁止全文转载,摘要转发请保留原文链接及作者信息,谢谢!
您的捐赠将鼓励我继续创作!