物置き

ATOK+親指ひゅんQの環境で英字キーを使って変換候補を確定できるようにする

ATOKには変換候補確定キーを中段の英字で表示する機能がある。
これを利用するとホームポジションからほとんど手を動かさずに変換候補を決定できて便利そう。


(画面はATOK2008)

ところが親指ひゅんQを使っていると、この機能をうまく利用することができない。
どうも、親指ひゅんQは入力されたキーを、対応するJISかな配列に置換することによって親指シフト配列を実現しているようで
ATOK側に渡る前に親指ひゅんQが別のキーにすげかえてしまうことが原因のようだ。

こんな感じのことが起きてるぽい

Aキーおす 
↓
Aキーは親指シフト配列では「う」
↓
ここで入力されたAキーはJISかな配列での「う」であるものとして
4キーの入力として置き換えられる。
↓
結果、ATOK側では4キーが押したものと認識される。


せっかくホームポジションで変換候補を確定できる機能があるのにそれを利用できないのは残念なので対処方法を考えた。

対処

親指ひゅんQ側でJISかな入力に変換されてしまうのであれば、窓使いの憂鬱を使って逆に正しいキーに変換されてしまうようにしてしまえばいい。


例えば、Aキーが押された時に、親指ひゅんQがJIS配列の「ち」に置換するようにする。
「ち」は親指シフトではUキーなので、Aキーが入力されたら窓使いの憂鬱側でUキーの入力に置き換えられるようにする。
具体的な流れとしては、

Aキー入力 
↓
窓使いの憂鬱がAをUに変換 
↓
親指ひゅんQがUをAに変換 
↓ 
ATOK側はAが押されたと認識する 
↓
ウマー

いとややこしや。けど、これでいけそうな気がした。


単純にAキーをUキーにマップしただけでは、意図しないところで変換が働いて困ったことになるので、
モディファイヤキー+A,S,F,D...と設定することにした。
下記のような感じ

mod mod0 = !!!Space
keymap Global
	key IC-M0-A = U
	key IC-M0-S = J
	key IC-M0-D = S
	key IC-M0-F = H
	key IC-M0-G = K
	key IC-M0-H = I
	key IC-M0-J = D-Convert O U-Convert
	key IC-M0-K = D-Convert K U-Convert
	key IC-M0-L = D-NonConvert E U-Convert

Spaceキーをワンショットモディファイヤキーとして定義し、Space+A,Space+S...という入力で変換候補を確定するようにしている。
また、「IC」を指定することにより日本語変換中のみ、このキーバインドが有効になるようにした。
これで意図しない変換はまず起こらなくなる、はず。(しばらく使ってみないとわかんない)


あとは、候補選択ウインドウを見た際に上記で設定したキーを押す、ということが習慣化できるかどうか。

というか

こんな回りくどいことするなら、いっそあきらめて変換候補を数値表示でもいいのかもしれない。
キーマッピングでAキー -> Alt+1 Sキー-> Alt+2...というキーバインド設定を行っておけば、
Alt+中段キーで変換候補を決定することができるわけだし。

ただしこの場合、A->1,S->2...という脳内変換テーブルが必要。