マクロ付US配列キーボードでの日英切替をATOKプロパティで実現した

使用キーボード：Keychron V8 Max
使用ツール：ATOKツール，Keychron Launcher(Webアプリ)

https://keychron.co.jp/products/keychron-v8-max-alice-layout-qmk-custom-mechanical-keyboard?srsltid=AfmBOora9jLpQmpH4vuhd0P0BePZQWDe-inBr1vNa7eP2LLaefrdj9ez

# V8 Maxのマクロキーを変換キーのように使いたい
US配列キーボードでのスムーズな日本語↔英数切り替えのために，JIS配列キーボードの全角半角キーなどで行っている切替操作を別のキーに割り当てたい．
Keychron V8 Maxはマクロキーがスペースの左右に付いている．これをJIS配列の変換キー無変換キーのように使いたい．
自分はATOKを利用しており，そのプロパティ機能を用いた方法で実現した．

## V8 Maxのマクロ機能
V8 MaxはKeychron launcherでキーマップを設定できる．また，マクロを15個まで記録・保存できる．
各キーに設定できる機能には，JIS配列キーボードの変換キー・無変換キー・ひらがなカタカナキー，保存したマクロが含まれる．

### US配列では変換キーが効かない
マクロキーに変換キーを割り当てると，JIS配列キーボードとして認識させれば変換操作を受け付けるが，US配列キーボードとして認識させると受け付けなくなる．
困りました．単純にはいかないようです．

# ATOKツールのプロパティ機能
ATOKツールでは入力モード変更などの操作のキー割り当てを変更してプロパティとして保存できる．
Ctrl+Spaceなど複数キー入力を日本語↔英数切り替えとして設定し，そのキーをマクロとして設定したい．

## ATOKでの日英切替操作
ATOKにおいて，日本語↔英数の切り替え操作は複数ある．

### 日本語入力ON/OFF（全角半角キー）
日本語ONで入力すると青いひらがなで表示され変換が可能．日本語OFFだと変換候補は出ない．切り替え時カーソルの下に[あ]か[A]のアイコンが出る．IMEバーの表示は常に[あ]．

### 漢字/半角モード切替（変換キー）
漢字モードで入力すると青いひらがなで表示され変換が可能．半角モードだと変換候補は出ない．IMEバーの表示は漢字モードで[あ]，半角モードだと空欄になる．

### 半角無変換固定入力ON/OFF（無変換キー）
半角無変換固定入力ONで入力すると赤い半角英数字で英単語などに変換が可能．IMEバーの表示はONで[A]，OFFではONする前の表示に戻る．[あ]だとONにできてOFFにすると[あ]に戻るが，空欄だとONにできない．

### 入力文字種全角ひらがな（なし）
[あ]にするだけの，トグルではない操作．

### 入力文字種半角無変換（なし）
[A]にするだけの，トグルではない操作．入力すると青い半角英数字で変換候補は出ない．

# 実現したい操作
### 大枠
右マクロキー：Ctrl+Space，日本語
左マクロキー：Shift+Ctrl+Space，半角英数字

### 詳細
#### やりたいこと
* 英語の入力を学習しているか不明だが，できるならやってほしい
→入力文字種とIMEバーの表記が一致している漢字半角切替は英語を英語として学習してそうなのでこっちを使う

* 日英交じりの語を入力したい
→文字入力中に切替操作を受け付けるように

* 日本語状態で右マクロ・英数状態で左マクロを押しても何にもならないでほしい
→トグル操作ではなく，指定のモードに設定する操作とする

* 日本語入力待機中に左マクロ押したら英数入力にしたい，英単語のサジェストや変換は要らない
→半角モードでいい

[追記]
* テキストボックスにカーソルを合わせると日本語入力ONになる場合とOFFのままの場合があり，OFFの場合は漢字モードへの切替を受け付けない
→日本語を打ち始める時は日本語入力ON

# 実際の設定
ATOKツール→「ATOKプロパティ」
または，IMEバー→「メニュー」→「ATOKプロパティ」
タブ「キー・ローマ字・色」→ボタン「キーカスタマイズ」
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988033/316f6223-a53e-cc7f-87ce-3e1aeb804c78.png" width=60%>

下部ラジオボタン「キー」を選択
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988033/22d15a55-981c-dfa8-e00a-2407620232e9.png" width=55%>

キー入力に割り当てられた操作が一覧表示されている．同じキーでも「文字未入力」「文字入力中」など状態に応じて異なる操作を割り当てることができる．
「漢字モード」は「文字入力中」「変換中」には割り当てられないなど，状態と設定の組み合わせには制限がある．
「Ctrl+スペース」の行には全候補表示などが割り当てられているが，使わないので上書きすることにした．

「Ctrl+スペース」をクリック
状態 ~~「文字未入力」~~ 「半角入力」「記号入力」にチェックを付けて「機能一覧」から「漢字モード」を選択
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988033/135fb3d5-de2a-8905-37be-a7376481878a.png" width=40%>
[追記]
状態「文字未入力」は「日本語ON」を選択
OKを押す
もう一度「Ctrl+スペース」
残りの状態にチェックを付けて「機能一覧」から「入力文字種全角ひらがな(あ)」を選択．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988033/5ef1870e-705f-dc58-dc82-d92702b5fa58.png" width=40%>
OK

「Shift+Ctrl+スペース」をクリック
状態「文字未入力」「半角入力」「記号入力」にチェックを付けて「機能一覧」から「半角モード」を選択
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988033/dbcab6a7-4401-24fd-0fcb-17159ace3786.png" width=40%>
OKを押す
もう一度「Shift+Ctrl+スペース」
残りの状態にチェックを付けて「機能一覧」から「入力文字種半角無変換(A)」を選択．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3988033/1b3ee583-8240-4ee5-e945-fee2477201fc.png" width=40%>
OK

# 設定完了
これで「右マクロキーで日本語」「左マクロキーで英数」の切替操作が実現できた．
まだ慣れないけど，とにかく日本語を打つ前には右・英語打つ前には左というのだけを考えるよう練習しています．

# 残念ポイント？
ATOKプロパティではAltキーを含む複数キー入力を割り当てることができない．
HHKBのAlt+｀に設定できないのはHHKBユーザーの方々には残念ポイントかも

# 番外：V8 Maxと内蔵キーボードの異なる配列を共存させたい
V8 MaxはUS配列，ノートPC内蔵キーボードはJIS配列だが，言語設定ではキーボードの配列は1つしか設定できない．
ここでレジストリを書き換えるなどするとキーボードごとの配列のまま使えるようにできるそう．
先駆者さまの記事を読んで挑戦したものの，V8 Maxの便利機能が壁となって撤退，いや結局大丈夫というのを記事にしました．

https://qiita.com/hynn_nnn/items/aef1101b4369c3ac013c