自作キー配列 DvorakJP2

こんにちは。メルペイでSREをやっている@kekeです。

TBSテレビ番組「マツコの知らない世界」の2020年7月21日放送回で自作キーボードが広く紹介されていたことが記憶に新しい人もいるのではないでしょうか。また、最近では東京・秋葉原に自作キーボードの販売や工作室などを運営している遊舎工房ができたり、技術書典でも自作キーボードにまつわる同人誌を多く見かけるようになったり、最近の「自作キーボード」の熱は非常に高まっていると言えます。

しかし、今回紹介する「自作キー配列」とは、そのような物理的に作る自作キーボードの話ではありません。自作キー配列とは、創意工夫・最適化されたキー配列のことです。本記事では、私がDvorak配列から思想を(勝手に)受け継ぎ、5年の最適化の歳月の末に生み出された自作キー配列DvorakJP2を紹介したいと思います。

一般的な配列: QWERTY配列とその歴史

DvorakJP2の紹介に入る前に、私たちの身近なキー配列に目を向けてみます。

身近なキーボードのキー配列のほとんどはQWERTY配列が採用されています。QWERTYはクワーティと読みます。店頭に並んでいるパソコンや私たちのiPhoneのキーボードなど、キー配列は基本的には全て図1のようなQWERTY配列です。

図1. 一般的なキー配列QWERTY配列

名前の通り、左上段からQ・W・E・R・T・Yと並んでいるため、このように呼ばれています。 なぜ、世界中のキーボードのキー配列はこのQWERTY配列が圧倒的多数を占めているのでしょうか。

よくある説明の間違いが以下の通りです。

タイプライターのキーボードは、元々はABC順に並んでいた。しかし、タイピストのタイピング速度が上がったので、印字を行うアーム同士が絡まらないようになるべく打ちにくい配列にする必要があった。そして出来たのがQWERTY配列であり、今ではメジャーのキー配列になった。

キー配列好きの中でも広く知られている説ですが、これは完全なガセネタです。

確かに、歴史を遡ると最初のキー配列はABC順でした。図2にABC順の配列からQWERTY配列のキー配列の遷移を紹介しています。しかし、そもそもQWERTY配列がタイプライターのキー配列として用いられるようになったのは1882年のことです。アームを有するフロントストライク式タイプライターが登場するのはそのさらに9年後の1891年なので、QWERTY配列とアームが絡まる問題の間に関係ありません。また、QWERTY配列が現代のキーボードにも採用されている理由も明確には説明できていません。

実際には、1872年、Chistopher Latham Sholesによって初期のタイプライターのユーザーであった電報のオペレーターのニーズを満たすために原案が提案され、後にタイプライターのキー配列として地位を築いた歴史があります。つまり、モールス信号のためのキー配列でした。また、現代までデフォルトのキー配列として採用されるまで、1966年に『ASA X4.7』という標準規格を制定してたり、IBMやAppleなどがQWERTY配列を採用したコンピュータを発売したりして、今に至っています。もっと詳しく知りたい方は参考文献をご覧ください。

図2. キー配列の遷移[1]

Dvorak配列とその特徴

QWERTY配列を批判する形でDvorak配列が登場しました。

Dvorak配列とは、1932年にワシントン大学教育学部の当時・准教授August・Dvorak氏が開発したキー配列(図3)です。今はANSIの第2基準キー配列になっていて、QWERTY配列の次に多く使われているキー配列です。

図3. Dvorak配列

Dvorak配列は以下のような特徴があります。

  • AOEUIDHTNSの中段の打鍵率が約70%
    • 指をあまり動かさなくて済む。QWERTY配列は約30%。
  • 母音AOEUIと左手にあり、子音が右手にあるため左右交互打鍵できる
    • QWERTY配列は左右打鍵率が56:44。
  • QWERTY配列と違って右手側の打鍵率が高く、右利きには有利(世界の約88%は右利き)

これによって、以下のような効果があることが報告されています。

  • 10%-20%のタイピング速度の向上
    • また、多くのタイピング大会の優勝者はDvorak配列であることが知られている
  • 快適性の向上
    • 左右交互打鍵であるため、リズミカルに心地よく打鍵をすることができる。(私の主観では)ピアノを奏でているかのような心地良さがある
  • 打鍵による疲労の軽減
    • 指を動かす量が少なく、腱鞘炎などになるリスクが低い

Dvorak氏はキー配列に関する研究論文でQWERTY配列による打ち間違いの多さを痛烈に批判しており、アルファベットの出現頻度や、打鍵効率の向上を追求してDvorak配列を考案しました。QWERTY配列の根深い歴史からDvorak配列がデフォルトのキー配列としては採用されることはなく、またこれからもないと思いますが、非常に有効なキー配列です。

日本語に対応したDvorakJP

Dvorak配列は、アメリカで考案されたことから英語入力に対して特化しているキー配列です。もちろん日本語入力でもある程度の恩恵を受けられますが、完全とまでは言えません。

キー配列は、特定の言語の入力事情に合わせてにローカライズする事例はよくあります。例えば、以下のような事例です。

  • QWERTY配列がフランス語にローカライズしたAZERTY配列
  • QWERTY配列がアイスランド語にローカライズしたIcelandic配列
  • Dvorak配列がスウェーデン語にローカライズしたSvorak配列

しかし、日本語にローカライズしたものはなく、図4のような独自のJISカナ入力のキー配列しか存在していませんでした。日本人の約10%が使用しているそうです。

図4. JISカナ入力のキー配列(引用: http://typing.cleef.info/renshu/jiskana.html)

Dvorak配列も日本語にローカライズできれば、さらにその恩恵を受けられるのではないかと考えられて提案されたのが日本語入力用拡張Dvorak配列であるDvorakJPです(図5)。

図5. DvorakJP(引用: http://www7.plala.or.jp/dvorakjp/dvorakjp.htm)

特徴は以下の通りです。

  • 「か」行は「C」キーで入力する
    • Dvorak配列の弱みである左手人差し指で押す下段の「K」を押しやすい右手中指で移行する
  • Digraph-Arpeggio(DA)打鍵法を取り入れ、拗音拡張をする
    • Dvorak配列では「H」が右手中段にあるため、第2打鍵の「Y」を置き換える。つまり、「きゃ」は「kya」ではなく、「kha」と入力する
  • 二重母音拡張と撥音拡張
    • 二重母音(「あい」、「おう」、「えい」)、撥音(「ん」)を一つのキーとして割り当てる

このようにすることで、以下のような効果などがあることが報告されています。

  • 左右打鍵比率 51.7:48.3という理想的な左右均等な使用比率
  • アルペジオ打鍵の改良で、きゃ行など拗音が高速化

一例を紹介します。

私は担々麺が食べたい

と入力したい場合、QWERTY配列で入力すると

watasihatanntannmenngatabetai

となり、左右打鍵の観点でみると以下のように入力しています。

右(w)左(a)右(t)左(a)右(s)左(i)右(t)左(a)右(n)右(t)左(a)右(n)右(m)左(a)右(n)右(g)左(a)右(t)左(a)右(b)左(e)右(t)左(a)左(i)

しかし、DvorakJPを用いることによって以下のように入力できるようになり、理想的な左右打鍵になります。また大幅に入力数を減らせています。

watasihat;t;mjgatabet’

さらに追い求めたDvorakJP2

DvorakJP配列を採用したのは大学初年度のときでした。遥々、上京したばかりの私にはDvorak配列・DvorakJPだけでも「こんなキー配列があるのか」と思い、十分な刺激でした。

DvorakJPに慣れてしばらくすると、まだまだ改良できること気づき、以下のように配列に改良をしました。通常時と仮想反転時(後述)の状態があるので2つの図を載せます。

図7. DvorakJP2
図8. DvorakJP2(仮想反転時)

ここでは以下のような改良をしました。

  • ち行拗音の「C」による置き換えと第二打鍵の省略
    • ち行拗音はDvorakのセクションでkhaなどと定義されていましたが、左右打鍵率の観点からca(ちゃ)、co(ちょ)、cu(ちゅ)など「C」+ 母音に置き換える
  • 二重母音打鍵の強化
    • DvorakJPではai(あい)、ei(えい)、oi(おい)がサポートされていましたが、母音の連接頻度の研究を加味して2つの追加の二重母音打鍵をサポート
      • uu(うう): 例: 痛風が「tuufuu」ではなく「tyfy」と入力
      • ou(おう): 例: 方向が「houkou」ではなく「h,k,」
  • PYK入力時の仮想反転(図8)
    • P、Y、Kを入力したときはキー配列を反転させています。それによって左(P, Y, K)左(なにか)と入力しないといけないところ、左右と済みます。例えば「ぽぺかん」を入力したいときは「popek;」ではなく「phptkm」と入力します。

このようにして以下の例文は

ピーチ姫は台風の影響が全然ない

pi-chihimewataifuunoeikhougazenzennai

ではなく

ps-cihimehat’fpnoeiksgaz;z;n’

と打てます。このような取り組みのおかげで、先ほどのDvorakJPの効果がより高まりました。

おわりに

本記事では、私が5年間の歳月をかけて、徐々に最適化し、体に慣らしてきたDvorakJP2というキー配列を紹介させていただきました。

デフォルトのキー配列だからといってQWERTY配列が最適であるとは限りません。実は、QWERTY配列に代わるキー配列はDvorak配列だけではなく、ユニバーサル・キーボードColemak配列Malton配列や親指シフトと呼ばれているNICOLA配列など多種多様なキー配列が世の中にはあります。皆さんがどのようなキー配列を選んで、最適化しているのかが楽しみです。ぜひ、試行錯誤して楽しんでもらえれば幸いです。

参考文献

  • [1] 安岡孝一、安岡素子『キーボード配列 QWERTYの謎』、東京、NTT出版、2008年3月、ISBN 978-4-7571-4176-6。