先日より諸事情…によりテレワークしていますが、会社から持ち帰ったノートPCに自前のキーボードを接続するときの話です。
キーボードはこちらのHHKB Proなのですが、英語配列なのでそのままではキーボード配列が不一致となり、期待通り入力できません。特に、日本語配列の「_」(アンダーバー)や「¥」(円マーク)に対応する英語配列のキーが存在せず、入力することが出来ないのです。
Windowsの設定を丸ごと替える方法だけでなく、使用するキーボード毎に配列を替える方法を調べてみました。その手順をまとめました。
「Windowsの設定」から変更する方法
初めに「Windowsの設定」から変更する方法です。
一種類のキーボードしか使わない場合
スタートボタンを押し、「Windowsの設定」→「時刻と言語」→「言語」と辿ります。
「優先する言語」の「日本語」のところの「オプション」を押します。
オプションの画面の「ハードウェアキーボードレイアウト」のところの「レイアウトを変更する」を押します。
「日本語キーボード(106/109キー)」から「英語キーボード(101/102キー)」に変更して再起動します。
以上です! 簡単ですね。
複数種類のキーボードを使う場合
キーボードが一種類なら、上記の方法で何の問題もありません。
ただ、複数種類のキーボードを使っていて、PCを再起動せずに動的に切り替えたい場合は別の方法があります。
先ほど同様、「言語」の設定を開き、「優先する言語」に「English (United States)」が無ければ追加します。
これで、タスクトレイのところで日本語か英語かを動的に切り替えることができるようになります。 ショートカットキーはWindowsキー+スペースキーです。
キーボード毎に変更する方法
前述の方法で切り替え自体はできるのですが、これはいわば手動です。
キーボード毎にハード的に配列が異なるのに、自動で設定できないのは個人的には違和感があります。デバイスドライバが機能してないんでしょうかね。。
調べてみたところ、キーボード毎に自動で切り替わるように設定する方法がありました。
何故かうまく行きません。 成功したのはこちらです → キーボード毎に変更する方法 その2
確認環境
確認したPCの環境は以下の通りです。
OSビルド 18362.720
設定箇所
レジストリの以下のキーに設定があります。
HKEY_LOCALMACHINE¥SYSTEM¥CurrentControlSet¥Enum¥HID¥VID_XX&PID_YY¥ZZ¥Device Parameters
VID_XX&PID_YY¥ZZのところは、対象キーボードの「デバイスインスタンスパス」の値です。以下のようにデバイスマネージャから確認できます。
設定変更
Device Parameters配下の以下の2つのキーの内容を下記のとおり変更して、再起動します。
名前 | 種類 | データ |
---|---|---|
KeyboardTypeOverride | REG_DWORD | 4 |
KeyboardSubtypeOverride | REG_DWORD | 0 |
以上です!
…が、期待通り設定が反映されません。。
設定の仕方がおかしいのかと思っていろいろ調べていると、Windows 10 1809以降では効かない、という情報がありますね。。
↓こちらなど。
Windows 10 1809以降でキーボードを英語配列(101/102キー)にする – Windowsは好きですが何か
キーボード毎に変更する方法 その2
一つ前の方法と考え方は同じなのですが、もう一つの方法です。
こちらは成功しました!
確認環境
確認したPCの環境は以下の通りです。
OSビルド 18363.1082
設定箇所
初めに、Windowsの設定を英語に変えます。
手順は、一種類のキーボードしか使わない場合と同じです。
次に、日本語キーボードのほうのレジストリを変更します。
先ほど同様、デバイスマネージャの対象キーボードの「デバイスインスタンスパス」から、レジストリのキーを求めます。
なお、内蔵キーボードの場合だと、例えば以下のようになるようです。
HKEY_LOCALMACHINE¥SYSTEM¥CurrentControlSet¥Enum¥ACPI¥PNP0320¥4&2f8dde04&0¥Device Parameters
設定変更
日本語配列にするためには、Device Parameters配下の以下の2つのキーを設定して、再起動します。
名前 | 種類 | データ |
---|---|---|
KeyboardTypeOverride | REG_DWORD | 7 |
KeyboardSubtypeOverride | REG_DWORD | 2 |
以上です。 何故かこちらはうまく行きました。。
最後に
英語配列のキーボードを使うための設定について説明しました。
最後のキーボード毎に設定できるのがあるべき姿だと思いますが、残念ながら現状は設定できないようです。回避策はありました。
ドライバ周りはいじったことがあるので、自分でドライバを書いて自動で切り替えできると面白そうですね。気が向いたときに試してみようと思います。もし出来たらアップデートします。