英語配列で日本語入力をどうするかの話
英語配列のキーボードを使うときの大きな障壁といえば
日本語入力をどうするか
です。実際、これをどうするかで非常に悩みましたし、今も絶賛悩んでいます。
ここでは現在の私の対処法を紹介します。
なお、HHKBを想定していますが、それ以外の英語配列キーボードでも同様です。
さて、日本語入力をどうするかなんですが、これは言い換えればどのようにIMEのオンオフを切り替えるかの戦いです。
私は仕事や趣味の都合上、WindowsもMacも両方使います。
とはいえ、IME切り替えについてはMacの日本語配列の方式が馴染んでいます。
これはスペースキーの左右にある英数, かなキーを使う切替方式で、抽象的には
英数モード、かなモードに直接切り替えられる、独立したキー(or コマンド)を使用する
といったところです。
コレ自体は日本語配列のキーボードさえあればWindowsでも簡単に実現できます。それぞれ無変換, 変換キーを同じ機能に割り当てることができます。
まぁ、英語配列のキーボードにはそんなキーはないのですが。
さて本題。
まず、大きく分けて
キーボードのFnレイヤーで英数・かなを割り当てる
OS側の設定でキーバインドを作る
の2つの方法があります。
前者はキーマップ変更ツールなどで、キーボード側のどこかに英数、かなキーを割り当てる方法です(無変換、変換でも可)。OS側は最低限、英数・かなキーを使えるようにするだけの設定で済むので簡単です。また、既存の何かしらのショトカコマンドを上書きせずに済みます。
ただ、キーの配置に関しては、ご自身のFnキーの配置やスタイルに強く依存するので、万人におすすめできるものはありません…
私のHHKBでは、一応程度にFn+BとFn+Nに英数・かなを割り当てていますが、OS側で設定したショトカの方を使っているのであまり使っていません。なんとなく入れてるだけ。BとN、両方とも絶妙に遠い。かといって打ちやすい位置には別のキーが割り当てられているので、非常に悩ましいです。
(Fnの位置によりますが)英数・かなの変更という多用する機能を使うために、わざわざホームポジションを崩してFnを押しに行く、というのはコストが高いです。やっぱ親指に独立したキー、欲しいっすねぇ…
ここでは後者、OS側のショトカでなんとかする方法をまとめます。
まずは、OS側のIME切替のショートカットから。
この方法はOSに依存しますが、キーボードの物理的な制約に依存しないためHHKB以外の英語配列キーボードでも有効です。
macOS
MacではOS標準で非トグル方式の入力モード切り替えがあります。
Google日本語入力やOS標準の日本語入力において、以下のショートカットが使えます。
Control + Shift + J→かな入力モード
Control + Shift + ; → 英数入力モード
これは特に何も設定することなく最初から使えるショートカットキーです。
ちなみに、これはIME切り替えではありません。あくまでIMEは日本語入力のIMEのままで、その中の入力モードを切り替えるコマンドです。
このショトカを打ちやすい、打ちにくいと感じるかどうかはまた個人差があると思います。
私は、HHKBのようにAの左にControlを配置している場合においては、押すキーが多いとは思いつつ、配置自体は打ちやすいと思っています。特にJの方はホームポジションから打ちやすいので、Macを使う際は多用しています。
セミコロンの方はホームポジションだと小指で打つことになるので少し難しいです。せっかくならKが良かった。Karabinerを使えば変えられそうですが、OS側で変えられるんですかね。変えられれば有り難い。
強いて言えば、このショトカは片手で押せないのが難点です。
Windows
Windowsには残念ながら非トグル式のショートカットは標準では用意されていません。標準で用意されているのはAlt + バッククォートによる、トグル方式のIME切り替えのみです。
とはいえ、幸いなことに現在はPowertoysのKeyboard Managerでキーショートカットをかなり自由にリマップできるようになりました。
個人的にはMacのショトカに合わせたいところなんですが、一つ注意点があります。
それはCtrl + Shift + Jなどが、アプリ側のショトカで利用されている場合がある点です。
WinのCtrlはMacのControlと違い、ソフト内のショトカとしてバリバリ使われているので、上書きすると不便になる可能性があります。
たとえばVivaldiというブラウザではCtrl + Shift + JはDevtoolsの起動が割り当てられています。まぁこれはF12でも出来るので問題ないですが。
一方で、Winキーはソフト側でショートカットはほぼ割り当てられていない、OS機能に特化した修飾キーなので、これを使う手があります。
たとえば、Powertoys Keyboard Managerで
Win + J → 英数
Win + Shift + J → かな
にリマップすることで、Ctrl系のキーバインドを邪魔せずにIMEの切り替えが可能です。最も、押しやすい位置にWinキーが配置されている場合に限りますが。
もちろん、思い切ってCtrl系のショトカに割り当ててしまうのもありです。私は両方とも設定しています。かなの方はクセでCtrlの方が多く、英数はWin+Jが多いです。ちょっと気持ち悪いですが仕方なし…
Winキーはカスタムキーバインドを作るには良いんですが、英語配列だとかなり外側に追いやられてしまっているので、そもそもホームポジションから押しにくいのが難点です。
ちなみに、Winキーは左と右で別の修飾キーのようで、Powertoysで割り当てる際にWin, Win(Left), Win(Right)をそれぞれ選べます。
できる限り英数・かなキーの切り替えを減らす…?
キーボード側のレイヤーでなんとかするにせよ、OS側のショトカでなんとかするにせよ、結局、複数のキーを同時押しする必要があります。これはキー単押しよりは圧倒的にめんどくさいので、できる限り切り替え回数を減らすというアプローチも効果的です。たとえば、日本語入力中にちょっと半角英数が打ちたいときは、いったんそのまま打ってからF10キーやCtrl+;(ことえり)で半角化するなど。
私は変換中のCtrl+iに半角英数変換を設定しています。
あと、私は日本語入力中または変換中にCtrl+Spaceを押すことで、入力内容を破棄して英数モードに移行する機能を入れています。Google日本語入力の場合は以下のカスタムキー設定を入れれば可能です。これは英数が打ちたくなったら適当に文字を打ってCtrl+Spaceを打てば英数モードに入るので意外と便利です。入力中・変換中しか機能しないので、VSCodeの補完などのショトカとバッティングする心配もありません。
https://scrapbox.io/files/68c1ba7616638e01c2b3827f.png
余談かつまとめ
英語配列でもIME切り替えをなんとかする…という試みの一方で、改めて、多用するキー(というか機能)は、できる限り押しやすい場所に配置するべきだと実感しました。
複数キーの同時押しをしなければならない場合は、それをOS側の設定で実装しようと、キーボードのレイヤー機能で実装しようと、結局のところ入力効率は大差ありません。そのキーコマンドに指が慣れるかどうかです。
今回使わなかった方式
私は使っていませんが、以下の方式を採用している方も多いようです。
Ctrl+SpaceでIME切替のトグルを行う
Apple製品ではこの方式が標準です。Macも英語配列のキーボードを使う場合はデフォルトではこれです。
正確にはIMEオンオフではなく、入力ソースの切り替えを行っています。
私はトグル方式ではなく、英数・かなキーの独立したキーで切り替えたいのでこの方法は使いません。
さらに、このショトカはVSCodeの補完を出すのに使用しているので、競合を避ける意味でもこれは使いたくありません…
VSCodeの補完のほうをAlt+Spaceに変える、という手もあります。が、私はやっぱりCtrl+Spaceで補完を出したいのでなし。
Alt+バッククォートで切り替え
Windowsにおいて、ANSI配列(US配列)を使用している際に半角/全角と同様のキーコードを送信するショートカットです。さすがに押しづらい…というかわかりにくい。さらにHHKBではバッククォートが1の左隣ではなく最右上に存在するので、Altの配置によっては非常に打ちづらい。まぁ、1の左隣にあっても打ちづらいと思いますが。
これもトグル方式が嫌なので私はナシです。
ちなみに、ANSI配列の場合はPowertoysで何らかのキーバインドをAlt(Right) + IME Kanjiに割当てると、このキーバインドと同じ挙動になります。トグルの機能を別のキーに割り当てたい場合に有効です。
(Mac) Karabiner-Elementsを使って、Commandキーの空打ちで英数・かなキーを実現する
Commandを英数・かなキーと思って使う方法です。本来の英数・かなキーと似た位置にあるし、何より複数キーの同時押しが不要な点が大きなメリット。
しばらくは高速でタイピングする時にCommand関連のショトカを何かと誤爆しがちだったのでやめました。英数のつもりで打ったCommandを離さないまま、次のキーを打ってしまっていることが多かったので。
ShiftやAltキーで同様のことを行う場合もあるようですが、多分慣れないので試していません。
あと、HHKBに限りませんが、英語配列のCommandキーはかなり外側に配置されています。親指で押すにはかなりストレッチしなければならず、さらにホームポジションを多少崩すので、頻繁に打つ割に指の負担が大きいです。
WindowsではAutoHotKeyなどで同様の設定を作ることもできますが、挙動がいまいち安定しませんでした。
#PC