Dvorak 键盘


概述

Dvorak键盘是August Dvorak (1894 - 1975) 在二十世纪三十年代发明的一种异于QWERTY的键盘布局。下面是一个德沃夏克键盘布局示意图,深色按键表示德沃夏克键盘上与QWERTY不同的按键,浅色按键表示与QWERTY相同的按键。

德沃夏克键盘布局

我从2004年底开始从QWERTY转向德沃夏克键盘。在开始转变时,我把德沃夏克键盘的画在一张十六开纸上,贴在墙上,当想不起来按键位置的时候就看看这张纸。这张纸就贴在这张照片里我左手后边墙上,墙上的痕迹正是这张纸的遗骸。一个星期之后,我就基本转变过来了。我没有想到转变得会这么快。后来为完成一个作业,我写了一篇介绍和推广Dvorak键盘的文章,在这里可以下载:

PDF LaTeX

那时候,我用电脑时间长了手腕会痛。使用Dvorak键盘后,尽管我用电脑时间没少,但手腕却再也没有痛过。

键位频率统计

有统计证明用德沃夏克键盘输入英文远比QWERTY键盘科学和快捷[2]。下面我要证明对于输入汉字,这个结论依然成立。

拼音输入法是最常用的汉字输入法。统计文本有两篇,一篇是一篇网络上一个人写的拼音网络日记,另一篇是国标2312所有汉字。我统计了用全拼输入这两篇文本时每个字母在Dvorak键盘和QWERTY键盘上的分布频率。统计用Python脚本老版本,简单的Bash脚本

Dvorak键盘中间行累计频率最高,其次是上面行和下面行,而QWERTY键盘累计频率从高到低依次是上面、中间和下面行。这两篇拼音文字虽然内容完全不同,但是统计结果却很相像。Dvorak中间行占到了70%之多,而QWERTY的中间行只占到了35%。按起来最不舒服的下排,Dvorak只有12%,而QWERTY则占了22%。

这个计结果告诉我们,在Dvorak键盘上用拼音输入法输入汉字,要比QWERTY更快,更舒适。鉴于这样的结果,以及我使用德沃夏克键盘这么久没有问题,不想继续被QWERTY键盘折磨的人就不要犹豫转变了。

下面是对一篇拼音网络日记的统计结果。

表1:一篇拼音文章在Dvorak键盘上的分布

' 0.00% , 1.61% . 3.94% p 0.16% y 2.81% f 0.72% g 4.18% c 3.22% r 0.32% l 2.41% 19.37%
a 13.75% o 6.51% e 6.51% u 7.40% i 12.70% d 3.54% h 6.27% t 1.77% n 8.52% s 1.53% 68.49%
q 0.56% j 1.77% k 0.80% x 1.61% b 2.01% m 1.45% w 2.01% v 0.00% z 1.93% 12.14%

表2:一篇拼音文章在QWERTY键盘上的分布

q 0.56% w 2.01% e 6.51% r 0.32% t 1.77% y 2.81% u 7.40% i 12.70% o 6.51% p 0.16% 40.76%
a 13.75% s 1.53% d 3.54% f 0.72% g 4.18% h 6.27% j 1.77% k 0.80% l 2.41% 34.97%
z 1.93% x 1.61% c 3.22% v 0.00% b 2.01% n 8.52% m 1.45% , 1.61% . 3.94% 24.28%

下面是对GB2312中所有汉字拼音的统计结果。

表3:GB2312汉字拼音在Dvorak键盘上的分布

' 0.00% , 0.00% . 0.00% p 1.10% y 2.78% f 0.97% g 6.53% c 2.06% r 0.53% l 2.25% 16.22%
a 11.80% o 6.11% e 4.94% u 9.94% i 13.26% d 1.54% h 6.25% t 1.29% n 12.88% s 2.29% 70.30%
q 1.54% j 2.49% k 0.94% x 1.93% b 1.52% m 1.35% w 0.97% v 0.12% z 2.63% 13.48%

表4:GB2312汉字拼音在QWERTY键盘上的分布

q 1.54% w 0.97% e 4.94% r 0.53% t 1.29% y 2.78% u 9.94% i 13.26% o 6.11% p 1.10% 42.46%
a 11.80% s 2.29% d 1.54% f 0.97% g 6.53% h 6.25% j 2.49% k 0.94% l 2.25% 35.06%
z 2.63% x 1.93% c 2.06% v 0.12% b 1.52% n 12.88% m 1.35% 22.48%

Windows下使用德沃夏克键盘

如果是英文输入,那么选择美国英语的Dvorak布局就可以了。

如果要用中文输入法,在开始菜单的运行里面输入regedit后回车,找到\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layouts,中文输入法一般在这个目录的最后几项,简体中文输入是E0XX0804等(中文美式键盘是00000804),繁体中文是E0XX0404等。把输入法的Layout File的值由kbdus.dll改成kbddv.dll。注销并登录后,中文输入法的键盘布局即成为了标准的德沃夏克布局。如果中文输入法没有bug,那么就可以正常地使用Dvorak布局了。某台计算机上,紫光拼音输入法V6和谷歌拼音输入法支持正常;搜狗拼音输入法改后是乱的布局;微软拼音2003、2007皆不支持。

由于不同中文输入法处理键盘布局的方式不同,不同的Windows程序对键盘布局的处理也不同,一劳永逸的办法是改键盘的ScanCode Map。在\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Keyboard Layout里面新建一个叫ScanCode Map的二进制项,并将内容设置为Dvorak相关的项。运行这个注册表编辑文件即可,运行这个文件恢复到QWERTY布局。运行完这两个脚本都要注销后重新登录才有效的。(感谢网友Jakukyo Friel)

改系统的ScanCode Map的话,原来输入法的键盘布局都不要改变,必须保留kbdus.dll,如果改成kbddv.dll再改Scancode Map就会乱了。

改系统注册表需要管理员权限,还需注销并重新登录才能生效。另一种方法是使用AutoHotkey,执行这个脚本后,即可切换为Dvorak键盘;退出AutoHotkey即可切换为QWERTY键盘。这样无需修改注册表即可方便地在Dvorak和QWERTY间切换。感谢网友Jakukyo Friel提供信息来源

关于Dvorak键盘的不正确的想法

参考

  1. Introducing the Dvorak Keyboard
  2. SHIAR.nl - Dvorak
  3. (最后一个评论)
  4. Archive: Scan Code Mapper for Windows
  5. 尝试Dvorak键盘布局 | 不存在的日志
  6. windows - Programatically change keyboard to Dvorak - Stack Overflow

首次更新: 2004年12月4日
末次更新:

首页