DvorakJについて その3

いくつかの点で修正が入り、期待する通りの動作でCapsLockのCtrl化ができた。作者様には感謝したい。
残る問題は、Enterでコンビネーション入力がリセットされないこと。Escでは使いにくい。ExcelやGnumericなどの表計算ソフトもそうだけど、ネトゲのチャット欄なんかは大抵Escで閉じる。その他、一時的に入力欄を出して対処するタイプのアプリケーションでは、Escで入力欄が閉じることがむしろ期待されているように感じる。直感的にも、そういうUIにするのが自然だろう。
「っz」入力のあと、「な行」の特殊入力([n][;]→「なん」など)もうまくいかないことがわかり、ちょっと困っている。


とはいえ、これは設定ファイルの工夫で何とかなるような気もしなくもない。まだあんまり仕様を読んでいないので、本当に出来るのかは確信が持てないけど。できるのであれば、本体に余計な(設定不能かつ仕様変更と考えられる)変更を加えるのは、あまりよろしくないかもしれない。他の配列でEnterを挟んだコンビネーション入力を使う可能性があるのであれば。


そういえばDirectXアプリの上でDvorakJが効くのかどうか確認していない。DvorakJ同様(?)ユーザーモードで動いているyamy(Yet Another Mado tsukai no Yuutsu)は、ユーザーモードであるがゆえにDirectXアプリの上では介入不能とのことだった。
明日試してみよう。

追記

Enterキーでのキーストーク廃棄は対応していただけた。→[ 順に打鍵する配列と、順にも同時にも打鍵する配列で、Enter を出力したときには、入力したキーストロークを廃棄するようにした - blechmusikの日記 ]すばらしい。
やはりDirectXアプリ上では無効な様子。こればかりは仕方ないな。

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の同時押しをも扱うため?
  • 順にも同時にも打鍵する配列の扱い
    • 何故キーが効かなくなってしまうのか


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

DvorakJについて その2

2010-07-13 - blob glob
作者様直々のコメントありがとうございます。


2010-07-14版を試してみた。同時打鍵判定時間の設定は「直接入力……」ではなくて、「文字の表示を何ミリ秒待機するか」だと思うけど、それでよいのだろうか……
実際に使ってみたけど、通常の(文章を打つ)打鍵と、CapsLockを使ったショートカットキーの打鍵とで、ぼくの場合はスピードが違いすぎ、使い物にならなかった。つまり、待機時間を長くしすぎると通常の打鍵がほとんどできなくなり、通常の打鍵で支障が無いようにすると、CapsLock+[文字]の判定がシビア過ぎてかなりストレスだった。
このあたり、標準ドライバでは不可能なことを独自ドライバでやってるのが、窓使いの憂鬱なんだろうなー。

Windowsがキーの打鍵をどのように扱っていて、DvorakJがどのように処理しているのかあまり把握していないので、見当違いかも知れないけど、CapsLockが押し下げられた時点で、「順に打鍵」の第1キーとして認識することはできないのだろうか? そうであれば、期待通りの動作をさせられるような気がする。CapsLock後のキーも押下時点で反応してしまってよいと思う。「押し上げる動作」を検出する必要はないような……。


[変換][無変換]について。Ctrl押下時にQWERTYに変更する理由は、ショートカットキーの位置がQWERTY配列の左側に偏っているからだけど、[無変換]はこれらと近すぎ、親指を内側に曲げつつ下に動かすという動作を必要とするため、正直使いにくい。
この意味では[変換]はまだ使いやすそう。しかし、実際に試してみたところ、うまく動かない。-capslockを-henkanにするだけで良いと思ったけど、そういうわけでもないのかな。[変換]自体は、今のところ日本語入力時の推測変換キーとして設定している以外には使っていないので、こういう用途に向いてるのは確か。


あと、さりげなく不満なのが、変換後もDvorakJPの特殊入力の待ちが継続していること。ぼくは「っz」→「……」という単語登録をして、これを多用している(文章としてはあまりよくないけど)。3点リーダー後に句点「。」を打つのはよくあることだけど、この場合、一旦「っz」を変換して3点リーダーにし、次に句点「。」を入力するのだが、この句点が「えい」になってしまう。一旦[スペース]なり[変換]なり[Enter]なり、無関係のキーが押されたら特殊入力は解除するようにならないものか……。(←ここでも発生
記号系を読み方ではない変なキーで設定している場合には頻繁に発生しそうなので、あまり好ましくない。


また、直接入力用のDvorakで「順も同時にも」にすると、キー入力が出なくなる問題は2010-07-14版においても発生していた。謎だ。


設定ファイルの書き方次第でなんとかなりそうな点もあるので、少しずつ調べてみたい。あと、ACT09蒼星JLODについても調べてみようかな。
いずれにしても、当面は窓使いの憂鬱からは離れられなそうだ。WinXPのサポート終了までに乗り換えられればいいからそんなに急がないけどw

IE8がReferer漏らしてる?

Google AnalyticsでFF日記のアクセス元キーワードを眺めていたら、内容と全然関係ないキーワードが結構あることに気づいた。「後藤 セミヌード」とか。一応検索してみたけど、「後藤 セミヌード」の検索結果 - cobodoのFF日記 http://d.hatena.ne.jp/galka6b/ このようにヒットしない。
クロス集計させてみたところ、そういう無関係なキーワードからのRefererが来ているのは、すべてIE8.0からだった。
OSは、Windows XP/Vista/7の3種ともが存在。JavaサポートもYes/No両方あった。Flashのバージョンは10.0/10.1があったが、9系はなかった。ただ、9系積んでる人自体が1%ちょっとしかいないから、これは仕方ないかも。


http://www.st.ryukoku.ac.jp/~kjm/security/memo/referer-bug.txt にあるように、昔はReferer漏れなんてのもなかったわけじゃないけど、今更そんなことが起こるんだろうか。
あるいは、特定のプラグインツールバーか何かを使っているときに、それが原因で漏れたりするんだろうか?
個人的にはIE8は使ってないからいいんだけど、ちょっと気になった。8.0のみで起こり、6.0や7.0からのログがないことから、プラグイン説は信憑性低いと思うんだけど……
Google AnalyticsスクリプトがIE8でのみ起こすバグ、という可能性もあるかなぁ。


ちょっとググってみてもそれっぽい内容は見当たらないんだけど、大手のサイトを運営してる人には常識だったりするんだろうか。

Mozc再チャレンジ

Mozc - Google日本語入力のオープンソース版 - 憩いの場【Linux/ソフト紹介】
公開直後はかなり使い物にならなかったけど、今は辞書ツールも付いたし、ローマ字テーブル変更もできるし、いい感じ。
もうAnthyは捨てよう。