ATOKで日本語入力ONとOFFを別々のキーに設定しつつ、英語入力モードも使う(『のどか』使用)

 結論を言うと、「[英数]を押すとひらがな入力モードに、[右Shift]を押すと英語入力モード(ATOK)にする」が実現できた、という話です。

IMEオンとIMEオフを別々のキーに設定したい

 通常は、IME ONとIME OFFの切り替えは[半角/全角]で行うことが多いと思います。IMEがONだとOFFになり、OFFだとONになるというトグル操作です。しかし、トグル操作だと、いまのIME状態を確認しないと目的の状態になりません。すでにIME ONだったのに、IME OFFだと勘違いして「IME ON/OFF」キーを押してしまい、入力したら英数文字がずらり……ということになりがちです。*1

 IME ONとIME OFFを別々のキーに設定すれば、とにかくそのキーを押せば目的の状態になるので、いちいちIMEの状態を確認する必要がなくなります。

 というわけで、IME ONとIME OFFは別々のキーに設定するのがベストです。ちまたでは、[変換]と[無変換]にIME ONとIME OFFを割り当てる方法を説明したページが山ほどあります。自分もぜひそうしたいところですが、問題がいくつかあります。

ATOKでは「英語入力ON」を設定できない

「ki-bo-do」から「keyboard」に変換する

 自分は、IMEは『ATOK』を使っています。ATOKでは「英語入力モード」という入力モードがあります。基本的に英数文字を入力するモードですが、カタカナ読みのローマ字綴りで打っても正しい英単語に変換できたり、スペルチェックができるなどの便利機能が使えます。日本語と同様の推測変換も働きます。

 というわけで、ATOKでの英数文字は、「IME OFF」ではなく「英語入力モード」で入力したいのです。よって、日本語入力ONとOFFを別々のキーに設定するには、「日本語入力ON」と「英語入力ON」を別々のキーに設定するということになります。

 ところが、ATOKでは「英語入力ON」という設定が存在しません。キーカスタマイズの項目には「英語入力ON/OFF」しか存在しないのです。『ATOK 2017』での話ですが、その後も追加されたという話は聞きません。「日本語入力ON」と「日本語入力OFF」はあるのに……。というわけで、別の方法を考えます。

『のどか』で「全入力文字メニュー」を利用して英語入力ONキーを作る

全文字入力メニューで半角英字を選択する

 ATOKの機能の一つに、[Ctrl] + [F9]の「全入力文字メニュー」というものがあります。入力モードを一覧から選択するという機能です。この一覧の中には英語入力モードも存在します。操作に手数がかかるので普通はあまり使うことはない機能だと思いますが、ここではこの機能を利用します。

 『のどか』を使ってマクロ的な設定を書けば、どんなに手数がかかる操作でもワンタッチで済ますことができます。あるキーを押したら、[Ctrl] + [F9]→[I]を押したということにしてしまえるわけです。メニューが一瞬表示されてちらつく感じがしますが、気にしないことにします。これで、事実上「英語入力ON」というキーを作ることができます。

「英語入力ON」はワンショットモディファイヤで[右Shift]に割り当てた

 自分の場合、「英語入力ON」キーをどのキーに置くか、という問題もあります。

 先ほども紹介したとおり、IME ONとOFFに設定するキーは[変換]と[無変換]にする方法が有名です。大して使い道のない[変換]と[無変換]を活用する方法としては良い手段ですが、しかし、自分の場合キーカスタマイズはすでに散々しています。そのあたりのキーはもう使用済みです。そんなに都合良く空き地はありません。

y-koutarou.hatenablog.com

 「日本語入力ON」は[英数]でいいとして、「英語入力ON」に割り当てるキーが見当たりません。[Space] + [なんとか]など2キーの組み合わせを使えばいくらでも場所はありますが、「英語入力ON」というこれからまさにタイピングをしようという時に習慣的に押すキーが2キーの組み合わせというのは、自分は気に入りません。

 そこで、「英語入力ON」は[右Shift]に割り当てることにしました。[右Shift]はワンショットモディファイヤにします。つまり、[右Shift]を、押して離した場合は「英語入力ON」、押し下げたまま他のキーを押した時は[Shift]となります。これなら他の機能を削らずに「英語入力ON」を置くことができます。

 [右Shift]は頻繁に使う機能を置くキーとしてはやや遠いという懸念もあります*2。しかし、「英語入力ON」を使う機会はものすごく多いというほどではないので*3、妥当なラインだと思います。

 これで、ようやく「日本語入力ON」と「英語入力ON」を別々のキーに設定することができました。

『のどか』設定ファイル

 『のどか』の設定ファイルは以下の通り。

 [英数]はワンショットモディファイヤで[英数 & Ctrl]にします。[英数]の「日本語入力ON」は『のどか』の&SetImeStatus&SetImeConvStatusで設定しています。

 [右Shift]もワンショットモディファイヤにします。一番下の行が、今回のポイントとなる、[右Shift]単打で『ATOK』の半角英語入力モードにする設定です。間に&Wait(5)を挟むことでスムーズに動くようになりました。

# ◆[英数]と[右Shift]				                        ●元のキー	●変更後のキー
mod control		+= !!英数					# [英数]	[英数 & Ctrl]
key R-*英数		= &Ignore			        	# ※しばらく押したままにして離した場合は何も起こらない
key ~R-~S-*英数		= &SetImeStatus(on) &SetImeConvStatus(0x0019)	# [英数]	IMEオン(ひらがな)	※~S-を付けないとCaps Lockがかからなくなる
mod shift		+= !!RightShift		                        # [右Shift]	[右Shift & Shift]
key R-*RightShift	= &Ignore
key ~R-*RightShift	= &SetImeStatus(on) &Wait(5) C-F9 &Wait(5) S-I	# [右Shift]	『ATOK』の半角英語入力モード

*1:IMEの状態によってカーソルを替えたり、IMEの状態をカーソルのそばに表示しておくIMEなりアプリケーションなりを使えば多少は改善されます。自分は『SetCaretColor』を使用しています。しかし、それでもIME状態を確認する必要があるのは変わりません。

*2:自分は右手一列シフトをしているので[右Shift]は通常より1キー近いですが。

*3:日本語入力モードのままでも、[Shift]を押しながら文字キーを押せば自動的に英語入力モードになって英数文字が入力できます(そしてその入力が終わると自動的に日本語入力モードに戻る)。だいたいの英数入力はこれで済んでしまいます。[右Shift]を押して英語入力モードに入る必要があるのは、先頭の文字で[Shift]を伴わない英数文字(例えばアルファベット小文字)を入力したい場合が主です。