AutoHotkey
Dvorak
GPDPocket
BEAKL

GPD PocketのためにDvorak配列を考え直す

More than 1 year has passed since last update.

GPD Pocket Advent Calender 2017 16日目の記事となります。


はてさて

前回の記事を書いたことで、久し振りにキー配列のことをじっくり考えました。振り返ってみると、Dvorak配列を使い始めてから何やかんやで約16年くらい経っていることに気がつき、Dvorakよりも優れた配列が提案されてないかなー?と調べてみることにしました。


Qiitaにあった

どんなことにも先人はいるものでQiitaにとても参考になる記事を見つけました。Keyboard Layout Analyzerというキー配列を解析するサイトを使い、Qwerty、Dvorakを含む12種類のキー配列の結果を比較しています。最近、ちょくちょく見かけるようになったErgoDoxという左右分離タイプのキーボードにおける配列の考察ですが、非常に参考になります。


BEAKLとやら

Colemakなど、Qwertyからの移行コストがDvorakに比べ低い配列は知っていましたが、今さらQwertyベースの配列に移行するのはDvorakが染みこんだ自分にとっては逆に移行コストが高くなってしまうし、面白くありません。Capewell-Dvorakは日本語のローマ字入力ではオリジナルのDvorakよりも劣ると感じました。そんな中で目にとまったのが、BEAKLというキー配列です。基本的には格子状のキーボード向けに考えられた配列っぽいですが中々そそられます。


とはいえ

BEAKLにそそられたとは言え、普段仕事でプログラム書いたりしていて、IDEや、Emacs、zshのキーバインドなどデフォルトからカスタムしているため、移行コストに怯んでしまいました。そこで、BEAKLを参考にしつつ、現状の問題点を改善する配列をDvorakベースで考えてみることにしました。


左手

BEAKLで良いなと思ったのが、小指の使用率が低いこと。というか、Dvorakは打鍵が左右交互でリズミカルなのが利点ですが、小指の使用頻度が高いため、GPD Pocketの小さいキーボードでは小指の動きが窮屈になっているようで、一般的なサイズのキーボード以上に小指が疲れやすく感じます。そこでまず、CTRLで酷使する左手小指の使用頻度を下げるべく、BEAKLの母音の並びを取り入れ、次の画像のようにしてみました。

GPD_Pocket_Mod_Dvorak.png

「W」と「Z」の間はタッチタイプ不可と判断し、下記のようにして押しても何も入力されないようにしました。

;; nothing <- .>

00,00,34,00,\


右手(12月14日追記)

まずは中段ホームポジションにメスを入れ、小指で打鍵していた「S」を人差し指に変更し、周辺のキー位置を調整して次のようにしました。右手下段の「V」と「Z」も入れ替えています。

GPD_Pocket_Mod2_Dvorak.png


右手の変更(12月17日追記)

数日試してみて、英文だと「th」、「wh」が打ちにくく、日本語だと、「~が」と言う助詞、が行のタイピングが多く「g」が小指だと、小指の使用頻度が多かったため、次のように「h」を薬指下段にし、「z」を中段小指にしました。

GPD_Pocket_Pinkyless_Dvorak.png


とは言え押しにくい左Ctrl(12月20日追記)

やはり左Ctrlキーが小さく、ここ以外のアルファベットキーでの小指使用率を下げたものの、Ctrlを押すだけでも小指の負担は大きいです。そこで、SandS(Space and Shift)の仕組みをこの配列で導入してみようと思います。今回の場合はSpaceとShiftではなく、EnterとCtrlになります。Enterを単独で押したときはEnterとして、Enterを押し続けて他のキーと組み合わせた時は右Ctrlキーとして働くようにします。


この機能を実現するために、まず、Enterを割り当てたSpaceキーに右Ctrlキーを割り当てます。ここからはレジストリをいじるだけでは実現できないので、AutoHotKeyを利用します。こちらもQiitaにこんな記事がありました。こちらを参考にして、作った.ahkファイルはこちらです。


まとめ

Dvorakからの移行コストを抑えつつ、小指の使用頻度を抑えた配列なので「Pinky-less Dvorak」とでも言えましょうか。しばらくはこの配列で元のDvorak並にタッチタイプ出来るようになるか試してみたいと思います。

自己責任になりますが、この配列のための.regファイルもgithubで公開しています。