DvorakJ はキーボード配列を変更する、Windows 用のフリーウェアです。 このソフトウェアを使用すれば、レジストリのキーマップや IME のローマ字かな変換表を編集せずに、キーボード配列を変更できます。 このソフトウェアを USB メモリで持ち運んだり、オンライン・ストレージ上で共有すると、好みのキーボード配列の設定をどこでも使用できます。
DvorakJ では、直接入力用と日本語入力用のキーボード配列を個別にします。 直接入力用配列としては、Dvorak配列や Colemak 配列を実装しています。 日本語入力用配列としては、「AZIK」のようにキーを順に打鍵する配列と、「NICOLA配列」や「下駄配列」のようにキーを同時に打鍵する配列を実装しています。
DvorakJ の特徴は、直接入力と日本語入力の両方で、個々人が独自に作成したキーボード配列を使用できることです。 キーボードに似せた表を編集するだけですので、キーボード配列を自作することは、さほど難しくありません。
また、テンキーやファンクションキーの機能も変更できます。 例えば、Num Lock の状態にかかわらず、テンキーを使用するときには常に数字を出力する、といったことを設定できます。
DvorakJ は、キーボード配列を変更するソフトウェアにとどまらず、各種入力をより容易にするソフトウェアでもあります。
ここでは DvorakJ に実装している機能を三つ紹介します。 第一は SandS (Space and Shift) です。 これは、Space を押しながら 文字 を押すと、Shift と 文字 を押したことにする機能です。 第二は「マウスをくるくる回すとスクロール」です。 これは名の通りの機能で、トラックボールの一部の製品のような、スクロール・ホイールが存在しないマウスを使用している方にとって有益な機能です。 第三にショートカットキーの挙動を独自に設定できます。 この機能を使用することで、定型文を出力したりカーソルを動かすことができます。
ソースコードを NYSL の条件で公開しておりますので、ユーザーは DvorakJ を自由に拡張できます。 ソースコードについては、各版の source フォルダを参照して下さい。
OSの仕様上、DvorakJ を使用しても変更できないことがあります。 それは Caps Lock や ひらがな を Ctrl とすることです。 DvorakJ は LL フック (Low-Level Keyboard Hook) という仕組みを利用しているため、特定のキーについては、キーが押し上げられたことを感知できません(参照)。
ただし、これらのキーを Back Space へと変更したり、直接入力に切り替えるキーに変更することならできます。 また、条件つきではありますが、 Caps Lock と 文字 を同時に素早く打鍵して Ctrl と 文字 を出力することもできます。