DVORAK配列で気づくこと

DVORAK配列をちょっとのあいだ使ってみて、いろいろてユーザーインターフェイスに関して気づいたことがありました。たとえば、Mac OS X上でプログラムを終了させるのは「Command+Q」というキーバインドなんですが、これは「Command+Tab」で実行中のプログラムを選択しているときにも使えます。Commandキーを押し、離さないようにしながらTabキーを数回押して終了させたいプログラムを選択し、Qを押して終了させるという操作です。じつは、通常時の「Command+Q」はDVORAK配列にしても使えるのですが、実行中プログラム選択モードに入っているときは使えません。Qキーの代わりに「'」キーで終了させることができます。このシングルクォートキーは、QWERTY配列でQがあった場所に配置されています。

この問題の原因は、キーボード入力をOSが認識するときに「キーコード取得」と「文字コード取得」という2種類の方法があることに起因します。キーボードから文字が入力されたとき、キーコード取得ではキーボード上の物理的な位置を認識するのに対し、文字コード取得ではキーの物理的な位置を文字に変換してから認識します。変換テーブルを入れ替えることで、さまざまなキーボード配列が使えるようになります。QWERTYDVORAKだけでなく、日本語のJISかな配列や韓国語の配列、欧文アクセントなども、同じ仕組みで実現できます。

文字コード取得の弱点は、キーの物理位置を文字に変換する必要があるために、ゲームなどのリアルタイム入力に向いていなかったことです。ただ、最近のマシンは高速になっているため気にする必要はなくなってきています。いまインストールされているゲームでちょっと調べてみた限りでは「洞窟物語」や「NetHack」は文字コード取得で、Little Wingの「Jinni Zeala」はキーコード取得でした。最初の話に出てきたFinderも、通常は文字コード取得で、実行中プログラム選択モードではキーコード取得なんでしょう。

何はともあれ、デファクト・スタンダードに従わないことは、それなりの苦労を強いられると言うことなんですな。しかも今まで慣れたものがある人にとって、移行はとても大変。Windowsの人たちがMacにスイッチできない理由と同じ。