DvorakJでDvorakJP

はまちちゃんの記事で、DvorakJの存在を知った。現在、既に開発が終了した「窓使いの憂鬱」を使ってDvorakJPを使っているぼくにとっては、願ってもないソフトだ。早速使ってみた。
ぼくの場合、窓使いの憂鬱を以下のように設定して使っているので、その再現を試みた。

  • 直接入力時はDvorak
    • 記号位置は基本的にLinuxにおけるDvorak Internationalに準じ、バッククォートの位置のみ右シフトの横に移動
    • CtrlとのコンビネーションではQWERTYはまちちゃん推奨設定と同じ
  • 日本語入力はDvorakJP
    • 記号位置やCtrlとのコンビネーション時の設定は直接入力時と同様
  • CapsLockをCtrl化する

直接入力時のDvorak、日本語入力時のDvorakJPは、プリセットそのままでほぼ問題なかった。
記号位置は、各ファイルでバッククォートとバックスラッシュの位置を入れ替えるだけで再現できた。


問題はCapsLockのCtrl化である。
まず、単一キーの設定でCapsLockを直接指定で{Ctrl}にしてみたが、これは無駄であった。窓使いの憂鬱でもそうだったが、単純なキーの置き換えではなく、特殊な指定が必要な様子。
そこでググってみると、作者の日記が引っかかり、

同時に打鍵する配列に、以下の設定を追記すると、[Caps Lock] と [文字] を同時に打鍵して [Ctrl] + [文字] を出力できるようになる。順に打鍵する配列では設定出来ない。

Caps Lock キーと文字キーを同時に打鍵して [Ctrl] + [文字]を出力するよう設定する - blechmusikの日記

というので、まず直接入力時の設定にこれを加えてみたが、期待した動作にはならなかった。つまり、CapsLock+Fで検索窓が開いたり、CapsLock+Vでクリップボードからペーストされたりしなかった。一時停止状態の窓使いの憂鬱で調査したところ、挙動としては単純に、CapsLockが無視されるようになるようだった。CapsLockのコードもCtrlのコードも発生せず、Dvorak配列でのキー入力が発生する。CapsLock+V→'k'のように。


次に、後の方の記事で「順も同時にも打鍵する配列」に対応した、とあったので、こちらも試してみた。つまり、直接入力の設定ファイルの1行目を

同時に打鍵する配列

から

順にも同時にも打鍵する配列

に変更し、"-shift"と"-capslock"の前に'('を書いておけば、期待する動作になるはずである。
しかし今度は、直接入力状態でのキー入力が一切止まってしまった。日本語入力モードへの変更(半角/全角キー)は効いているので、恐らく設定に含まれる範囲でのキーの動作に限って止まったのだろう。


次にこのCapsLock関係の記事が書かれた2010/05/09にリリースされたバージョンをダウンロードし、同じ設定(同時に打鍵する配列に戻して)で動かしてみたが、やはり挙動は同じ(CapsLockが無視される)であった。
使っているのは日本語109(112?)キーボードなので、http://blechmusik.xrea.jp/dvorakj/help/detailed_settings/characters_and_keysを参考に、-capslockの代わりに、-vkF0sc03Aを使ってみたが、これも結果は同じであった。


使い始めたばかりということもあって、何が問題なのかよくわからない。今のところ挙げられる疑問点はこれくらいだろうか。

  • 今使っているキーボードで-capslock指定は効くのかどうか
    • 効かないとして、-vkF0sc03Aなら効くのかどうか
    • 窓使いの憂鬱による設定では、確かにCapsLockを押すとスキャンコード0x3A、仮想キーコード0xF0が出ているのは確認できる
  • 何故Ctrlで修飾したスキャンコードを出力するようにしているのか
    • 単純に"^v"等ではダメなのか
    • ShiftやAltの同時押しをも扱うため?
  • 順にも同時にも打鍵する配列の扱い
    • 何故キーが効かなくなってしまうのか


もうちょっと様子を見るべきだろうか。