blechmusikの日記

キー・カスタマイズ・ソフトウェア "DvorakJ" の覚え書きをはじめとして様々なことを書いています。

「DvorakJ……に対する……要望……」への返答

はじめに

omine3の備忘録集  DvorakJのレビューに対するお返事と要望と不備などへの返答として、DvorakJ の現状とその課題を簡単にまとめておく。ただし、 DvorakJ 最新版で修正し終えている不具合に関しては、ここでは言及しない。

DvorakJ の開発言語は AutoHotkey_L

DvorakJ は、様々な言語の混合物と言いうる言語 "AutoHotkey_L" で開発している。これは AutoHotkey というスクリプト言語の派生版である。

DvorakJ では [Ctrl] と [Caps Lock] を入れ替えることができない

AutoHotkey_L が LL フックを使用しているため、[Ctrl] と [Caps Lock] を入れ替えることができない。レジストリを編集するか、キーボードの操作を変更するドライバを導入しなければ、[Ctrl] と [Caps Lock] を入れ替えられないのである。レジストリを編集せず且つ追加ドライバを導入しない DvorakJ では、残念なことに、このような制約を甘受するしかない。

DvorakJ では好きな日本語入力用配列でタイピングを練習できる

ローマ字入力とかな入力のいずれであっても、DvorakJ を使用すればタイピングを練習できる。Dvorak 配列をもとにして作られたDvorakJP ではローマ字入力を、濁点や半濁点を単打で出力せねばならない月配列ではかな入力を使用することになろう。ローマ字入力モードでタイピングの練習をするときには、「日本語入力の設定」で「常に使用する」を選択し、ソフトウェアを再起動すること。

直接入力用配列で、[無変換]や[変換]を使用する同時打鍵を設定できるようにする

現在のところ、直接入力用配列では、日本語入力用配列とは異なり、[無変換]や[変換]を使用できない。これは、それらのキーの切り替え処理をきちんと実装していないことが原因だ。また、[Space] と [Shift] の両方を使用する同時打鍵を個別に設定しても、この区別をし損ねているようだ。キー・フックをきちんと切り替えるようにする必要がある。

日本語入力一般でスペースキーの設定を変更する

日本語入力時ならば、スペースキーを押すと全角空白が表示される。全角の空白から半角の空白へと変更するには、半角空白を現す Unicode 文字 {u+00020} を出力できればよい。

順に打鍵する配列(日本語入力)で設定できるキーを拡充する

順に打鍵する配列(日本語入力)で、標準の位置にあるバックスペースキーを使用するキー・ストロークを設定できるようにする。なお、日本語入力でも同時に打鍵する配列の方は、このバックスペースキーを使用するキー・ストロークを設定できるようにしてある。

順に打鍵する配列(日本語入力)で、同一の処理を複数回繰り返せるようにする

順に打鍵する配列の設定オプションとして、正規表現ワイルドカードを使用してキー・ストロークを設定できるようにしたい。

設定ファイルのオプションで、自分なりにグループ化できるようにする

設定ファイルの冗長性を回避する必要がある。

ヘルプページをきちんと記述する

きちんと説明することにしよう。他の機能を追加してから説明するという手段をとらずに、出来るだけ最新の情報を反映したページを早めに作成する。

キーボード配列の設定ファイルを GUI 上で編集する?

AutoHotkey_L でこの機能を実装するのは、当分先になるだろう。いくつもある言語の中でも、C# ならば、その GUI を比較的簡単に作成できるかもしれない。

提案されたストロークの管理方法を考えてみる

提案されたストロークの管理方法は、日本語入力で DvorakJP を使用することを前提としている。出力される文字をその都度判定するのがよいか、それともキー・ストロークの方を見るのがよいのか。Dvorak 配列の他の拡張入力方式である JLOD配列ならどうだろうか。「母音、数字、記号、準母音」が押し下げたときにストロークをすべて廃棄する、と DvorakJ 内部で決めてしまうか?TSF(Text Services Framework) と DvorakJ の処理を連動させることで、より柔軟な設定ができるようになるかもしれない。
これらについての良策を考えている最中である。

おわりに

まずは、キーボード配列の設定ファイルを如何に記述しやすくするか、という課題に取り組みたい。