【Windows10・Windows11】レジストリをいじってJIS配列とUS配列を共存させる

こちらの方法を試してみた方、『成功の可否と環境・OSver・etc』をコメントに書いていただけると嬉しいです！
他の方の助けになるので・・・！

# 最新の状況（適宜更新 03/07追記
最新の成功例は2022-02-04のコメントのより

> Windows 10でこれを適用した状態から，Windows 11 Pro 21H2に上げても使えています．

win10で対応後win11に上げる場合は大丈夫らしい。。。
ほかにも試した方がいれば、コメントにて教えて下さい。

# これは何？
「できない！」という噂が巷にあふれているWindows10 1909でレジストリをいじってJIS配列とUS配列キーボードを共存させる方法です。

JIS配列のノートPCを使ってて、内蔵キーボードはJISのままで外付けキーボードはUSを使いたい！！
という問題を解決します。

# 環境と構成
OS : Windows10 Pro
バージョン : 1909
ノートPC内蔵キーボード：JIS配列
BTキーボード：US配列

※環境によってはできないかもしれませんｍｍ

# 背景
これまでもレジストリをいじってJIS配列とUS配列を共存させる手法がありました。
しかし、バージョン1903からその方法が使えなくなり、「できなくなった」と結論付けている記事もあります。
検索すると使えない方法の紹介が多くあって、正しい方法に辿り着きにくいのでネット上の濃度をあげたいなと。

# 参考記事
本稿の方法はまんま[こちら](https://note.com/poina417/n/n5a4f4169210d)です。
画像とかもなく簡潔なので、レジストリをいじり慣れてる人は↑を見るのがいいと思います。
本稿では画像を使いつつ、だれでもできるように書いていきます。

# やり方の概要と旧手法の違い
本稿の手法は、
1. システムのキーボードレイアウトを英語にする
2. 内蔵キーボードをレジストリからJIS配列に変更
とすることでJIS配列とUS配列を共存させています。

これまでの方法は、
1. システムのキーボードレイアウトはJISの状態
2. US配列にしたいキーボードをレジストリからUS配列に変更
としていました。
どうやら、バージョン1903からこの方法が使えなくなっているっぽいですね。

# 設定方法
かなり冗長ですが、これを見ながらなら誰でもできるはず・・・！


## システムをキーボードレイアウトを英語にする
**設定**を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/135dbf07-2425-964c-29ae-15b9423e4afa.png)
**設定**から**時刻と言語**を選択、そこからさらに**言語**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/3baed5a3-9b33-2db1-4de0-b92411051480.png)
**日本語**をクリックすると**オプション**が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/8afd2d23-1d13-c3f5-413f-f8b67c6752eb.png)
**オプション**をクリックすると各種設定項目が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/41ccd9c8-44e3-6e64-7453-d7583e0bb7d8.png)

ここで**ハードウェアキーボードレイアウト**の**レイアウトを変更する**をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/75e79f08-c486-aaf1-581e-480615e29b2e.png)
**日本語キーボード**を**英語キーボード**に変更します。再起動しろと言われるので再起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/d72fdf5d-ee06-d0e6-28d9-f58e781d4ae3.png)
再起動して、言語オプションを開いてみると**英語キーボード(101/102キー)**になっていました。
この時点で、内蔵キーボードの入力方式はUS配列準拠になっているはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/913bd21c-5d38-2440-2ad3-c0d8d329b52d.png)

## 内蔵キーボードのデバイスインスタンスパスを取得
**Windowsロゴ**キー + **X**キーでメニューが開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/41cdf88f-5d63-be09-6fb5-1544562ca984.png)
**デバイスマネージャー**をクリックして、デバイスマネージャーを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/2c70a1eb-6d04-1bbb-5a76-ea277d8546ac.png)
ノートPCの内蔵キーボードは(たぶんみんな）**標準PS/2キーボード**だと思います。
それを右クリックして表示されるコンテキストメニューから**プロパティ**をクリックして、**標準PS/2キーボードのプロパティ**を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/b6afd1ee-9487-e16a-e5c3-8577ec0a237c.png)
**詳細**タブの**プロパティ**メニューから**デバイスインスタンスパス**を選択し、表示される値をメモしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/2cd40b71-9485-3a01-4cfa-e2557464bbb4.png)

## 内蔵キーボードをレジストリからJIS配列に変更
※レジストリをいじるため、必ずバックアップを取っておいてください。

**Windowsロゴ**キー + **R**キーで**ファイル名を指定して実行**を開き、**regedit**を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/710a2294-1d29-1491-a8c0-23a0ec49ee0f.png)
**OK**をクリックするとレジストリエディタが開きます。
アドレスバーに以下を入力します。
```コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters```
右の窓に**OverrideKeyboardType**と**OverrideKeyboardSubType**があれば削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/dbba2ce6-250b-69b4-e968-5195f4515bd1.png)

次に、先ほど取得した内蔵キーボードのデバイスインスタンスパスを利用し、アドレスバーに以下を入力します。
```コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\先ほど取得したデバイスインスタンスパス```
私の場合は以下のようになりました。
```コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\MSFT0001\4&29BD1D19&0```
**※このへん、環境によってどのように異なっているかわからないので注意して進めてください。**
さらに、ディレクトリ内の**Device Parameters**を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/e06e5189-6610-2fd5-1a82-c8c951b4b473.png)
右の窓内で右クリックをし新規→**DWORD(32ビット)値**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/25441a1b-8a1a-3c12-0303-9c1fd804099e.png)
**新しい値 #1**が表示されるので、名前を**OverrideKeyboardType**に変え、さらに右クリックをし**修正**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/5a049962-00fa-c6e0-1585-d61e0293bbe1.png)
**値のデータ**に**7**を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/9cab2a31-ca4f-cf17-82f3-2f0e42a9c640.png)
同様に**OverrideKeyboardSubtype**を追加し、値のデータを**2**にします。
最終的に以下のようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65723/09f55286-f03b-62f4-7e7f-7532f051e9b5.png)

さいごに再起動します！

再起動後、内蔵キーボードはJIS、外付けキーボードはUSになっているでしょうか？！
当方はBTキーボードでやりましたが、やり方的にはUSBキーボードでも問題なくできるはずです。
（USBポートよってデバイスインスタンスパスば異なると思うので、注意は必要です。）

楽しいキーボードライフを！！！