dvorak键盘的使用

了解计算机发展史的人应该知道,现在通用的QWERTY 键盘布局 其实是为了降低打字速度(因为在“远古”时代,打字过快会导致卡键),故意把常用键隔开。

Dvorak布局,中文译作 德沃夏克,基于字母出现频率和手的生理基础来设计的。网站1有一些关于Dvorak的详细介绍,还有这里也是一个新手入门可看的wiki,最直观地从下图可以看出一些端倪,元音aoeui和常用的辅音安排在中间行。网站1还提供了键盘布局的pdf文档。基于统计的数据也试图说明,使用Dvorak布局,近2/3的按键都在中间行,中文的数据似乎也差不多。

扫盲过后,似乎值得一试。如果在windows上,想要体验一番的话,下面是最常见的流程:

1. 在原版windows上使用Dvorak键盘布局:

开始—控制面板—区域和语言选项—语言 选项卡—详细信息—在“已安装的服务”中点击添加,输入语言中文英文都行,下面的键盘布局选 美国英语-Dvorak

保存确定之后,打开一个文本文件,在输入法指示器/或者默认的ctrl-shift把输入法切换成Dvorak,就可以体验一把。

2. 如果你的系统是西红柿花园版或者飓风之类的精简版windows,Dvorak键盘布局很可能已经在精简的时候就被xx了,在上面添加的时候也没有,怎么办呢。简单,第一步,到找dll下载站下载,并解压缩对应操作系统(包括2000,XP,2003)的kbddv.dll,放到windows\system32目录下,然后把下面的文字另存为.reg文件,双击导入,那么在1中提到的,添加键盘布局时,Dvorak又回来了

Windows Registry Editor Version5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00010409]
"Layout File"="KBDDV.DLL"
"Layout Id"="0002"
"Layout  Text"="美国英语-Dvorak"
"Layout Display  Name"="@%SystemRoot%\\system32\\input.dll,-5092"

3. 好像还是有点问题,这样添加的Dvorak是以一个输入法的形式出现的,输入英文当然方便,只要切换一下就好了,可对于广大其他程序和中文输入法呢,它们还是按照QWERTY的布局接受键盘输入。要适应两套布局简直是灾难!。

有没有一种办法直接把系统的全局按键统统改过来。有人说把键盘拆了,按新布局装好 :P ,可这样是不行滴。想到打魔兽的时候,讨厌的win键当然是要屏蔽掉的,而且还有一些快捷键也需要修改,许多游戏改键工具都可以做到。那么有没有一个小工具,打开就切换成Dvorak布局,切换一下又回到QWERTY布局呢,当然有,在SourceForge的这儿,不过我试用了一下发现这个小工具很糟糕,切换一次就少掉一个输入法 -__-,得照1中类似的方法,把输入法重新添加回来

且不说这个删输入法的bug,要开着一个小工具自然不是geek的做法,在Linux下面改改keytables就好了,windows可没有这么简单的地方,功夫不负有心人,总是有办法的,在另一种键盘布局colemak的页面找到了关键字scancode,啥?扫描码?有兴趣可以到微软的页面看看,总之是通过注册表的如下位置

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

来实现键盘映射,也就是说,windows按照你定制的scancode map,让程序接收到的按键是映射后的。在这里找到一份已经写好的scancode map,先把下面的文字另存为 qwerty.reg,留着备用。。。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"ScanCode Map"=hex:00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00

把下面的文字另存为dvorak.reg文件,双击导入注册表,重启后生效

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"ScanCode Map"=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,28,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,27,00,2c,00,00,\
00,00,00

如果发现比较悲剧,照着pdf文档或者图都不会打字的话,还是回去QWERTY布局吧,双击刚才存好的qwerty.reg,双击导入注册表,重启后生效

变回以前布局的另一种办法是到注册表的如下位置,删除右边的Scancode Map键值即可

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

4. 尝试的最终结果

我试了一下之后还是换会了QWERTY的键盘布局,综合考虑到前辈1提到的一些忠告,前辈2的介绍文后的评论里有人提到Dvorak的所谓优势其实也值得商榷,还有最开始那个网站提到的优势劣势对比。对我来说,一个是快捷键的问题,一个是VIM的问题(因为VIM的按键设计是基于QWERTY的,跟字母没多大关系,关键是键的位置),再者QWERTY的确是太太太太通用了,从PC到上网本再到智能手机都是这样的,迁移成本太高了,能咋办?


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就会乱了。

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

  • × Dvorak键盘只适合英语输入。
    错。上面的统计结果表明Dvorak同样适合汉语拼音输入法。
  • × 没有Dvorak键盘。
    是有卖的,不过很贵。

dvorak的安装

ubuntu下,非常方便,在系统 > 首选项 > 布局 设置
windows下,为避免中文输入法dvorak键盘布局失效
只需把system32/kbddv.dll 改名为kbdus.dll 重启后即能完成全系统的键位dvorak化。

在线练习网址
http://gigliwood.com/abcd/
http://gigliwood.com/abcd/lessons/lesson_1.html#previous-photo



你可能感兴趣的:(linux)