dƷvorak's impl.

        !  @  #  $  %  ^  &  *  (  )  {  }          
        :  <  >  W  Y  K  R  D  L  C  ?  +  |       
        A  O  E  I  U  G  H  T  N  S  _             
        "  Q  X  J  B  F  M  P  V  Z                

布局由来

不论是 dvorak 还是 colemak 布局,都是为拉丁字母设计的,中文输入大家见仁见智。我自己是用了俩月就基本放弃了,后来索性自己设计了一个,还起了个高仿的名字,唤作「dƷvorak」。当时设计该布局的初衷是为了提高拼音输入的舒适度,而不是输入速度,毕竟我们大多都不是靠打字速度谋生的。设计之初难免有考虑不周之处,各位看官如有好的想法,欢迎补充。😎

软件实现

由于穷的缘故,起初我是用软件方式实现的。映射工具从最初的 remapkey 到 msklc 再到 ahk,每一种都或多或少存在着不足之处,不过组合起来倒也还能凑合着用,虽然使用起来仍有诸多不便,不过这也是当时我能找到的最好的方法了。

- 使用 remapkey.exe 对控制键进行映射。
- 使用 msklc.exe 制作键盘布局。(这里的键盘指的是 windows 系统中输入法的键盘)
- 使用 AutoHotkey 定义快捷键。

我愉快地使用了一段时间,直到开始接触 linux 操作系统和虚拟机,繁琐的配置令我难以忍受,也就是在那时,我开始寻求新的解决方案。补充:软件层面的映射在部分游戏中不起作用。

硬件实现

更换平台会带来一系列问题,继续使用软件映射的方式很有可能会把我逼疯,为了避免这种事情发生,最终我决定自己做一个机械键盘出来。

我的需求

- 能够在多个布局之间无缝切换,因为玩游戏时还是得用 qwerty 布局。😅
- 快捷键方便使用。这一点至关重要,快捷键问题得不到有效解决是众多 dvorak 使用者放弃的主要原因。

最终效果

- 全键可编程(所有键位可以任意排序)
- 共八层逻辑(每层均可放置一个布局)
- 组合快捷键(可以自定义组合快捷键)
- 第0层:自定义布局(包括一个瞬时开启第1层的按键:FN1)
- 第1层:快捷功能层(包括一个瞬时开启第2层的按键:FN2)
- 第2层:中间管理层(包括一组固定开启第3/4/5/6/7层的按键:FN21/FN22/FN23/FN30/FN31)
- 第3层:自定义布局
- 第4层:自定义布局
- 第5层:自定义布局
- 第6层:自定义布局
- 第7层:自定义布局

制作工具

键盘配列制作 : http://www.keyboard-layout-editor.com/
键表文件生成 : https://tkg.io/
程序在线烧录 : https://tkg.io/
程序离线烧录 : https://github.com/kairyu/tkg-toolkit

使用 keyboard-layout-editor 设计键位布局并制作键盘配列(最多八层),然后将各层的 raw data 拷贝到 tkg.io 中,在 tkg.io 中设置层快捷键和组合快捷键,设置快捷键的前提是要在键盘配列中先设计一个功能键(该功能可选),最后将数据烧录至键盘,可以使用 chrome 浏览器插件在线烧录,也可以生成源码后用 tkg-toolkit 离线烧录。

利弊分析

软件方式的经济成本很低,时间成本较高,每换一台计算机就需要重新配置。
硬件方式的经济成本较高,时间成本较低,做好之后即插即用但是不便携带。