2
Help us understand the problem. What are the problem?

posted at

updated at

Windows10 21H2で英語配列のBluetoothキーボードを追加して日本語キーボードと共存させる設定

はじめに

眠っていたTablet PCに、日本語キーボードを繋いだら、以前に使っていた英語配列のキーボードの設定が原因で英語配列として認識されてしまいました。試行錯誤して同時に接続して共存させる方法を見いだせたので、情報を共有させていただきます。

前提

  • Windows 10 Home 20H2, 21H2
  • 日本語キーボードで正しく動くように設定してある
  • Bluetoothの英語配列キーボードを追加する
  • レジストリを編集する

※ まっさらな状態からの動作確認はしていません。
※ Windows10 Home 21H2にアップしても有効でした。

こだわりどころ

  • Tablet PCでスクリーンキーボードを常に日本語モードで起動できる
    (デフォルトキーボードが存在しないので)
  • レジストリの編集を必要最小限にとどめる

レジストリ編集手順

デフォルト設定を変更する

  • システム標準のキーボード設定:2つ削除して1つを変更
レジストリ
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
キー 値:変更前 値:変更後
LayerDriver JPN kbd106.dll (変更なし)
OverrideKeyboardIdentifier PCAT_106KEY PCAT_101KEY
OverrideKeyboardSubtype 2 キーを削除
OverrideKeyboardType 7 キーを削除

追加したキーボードを英語設定にする

  • デバイスマネージャでBluetoothに出てくるキーボードのプロパティの詳細から「デバイスインスタンスパス」をコピーして下記に連結
レジストリ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\
  • FriendlyNameでデバイスを確認し、ContainerIDの値をコピーして検索

  • Servicekbdhidであることを確認する(違っていれば次を検索)

  • その下にあるDevice Parametersを選択

  • 以下に2つのキーをDWORDで追加

    キー
    KeyboardTypeOverride 4
    KeyboardSubtypeOverride 0
  • 以上の編集が終わったらWindowsを再起動

試したこと

  • Bluetoothキーボードのデバイスインスタンスパス(BTHENUM以下)のDevice Parametersにキーを追加しても認識されなかった
  • 「HIDキーボードデバイス」のデバイスインスタンスパス(HID以下)のDevice Parametersへの設定のみが反映されることが確認できた
  • 「HIDキーボードデバイス」のDevice Parametersへの設定がない場合はLayerDriver JPNの値によって動作モードが設定される
  • 「HIDキーボードデバイス」が複数あったので、特定に手間取った
    (特定後FriendlyNameを追加してキーボード型番を設定した)
  • BluetoothのデバイスインスタンスとHIDデバイスの対応がよくわからなかった
    (結局ContainerIDで検索するしか思いつかなかった)
  • 英語配列をデフォルトにする場合は、下記の組み合わせにすると共存できた
    (英語キーボードには設定をしない)
    • デフォルト設定
レジストリ
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
キー
LayerDriver JPN kbd101.dll
OverrideKeyboardIdentifier PCAT_106KEY
  • 日本語キーボードHID以下のDevice Parameters追加設定(DWORD)
キー
KeyboardTypeOverride 7
KeyboardSubtypeOverride 2

参考

Windows10(1909, 20H1, 20H2)でHHKB英語版とパソコン内蔵日本語キーボードを共存させる方法
Windows で US 配列と JIS 配列を共存させたい
他にもいろいろ参考にさせていただきましたが、私の環境では上記の2例を含めて、どの方法でもうまくいきませんでした。(たぶんOverrideKeyboardIdentifierが変更されていたから)

終わりに

Bluetoothなので手順が複雑になりますが、何とか設定個所を特定する方法が見つかったので良しとしましょう。USB接続であればもっと簡単なのですが...
英語キーボードをベースにすると、スクリーンキーボードの配列が、直前に使用した物理キーボードのモードに依存して切り替わるので、見た目も似ていて誤入力の原因になりそうでした。日本語キーボードよりキー数が少なくてすっきりしたレイアウトだったので、そちらの方が良かったのですが、勝手に切り替わらないようにする設定を見つけられなかったので諦めました。

追記

  • 設定の確認・変更・復元するツールを下記に公開しています。(2022/8/16)
  • 設定を確認するPowerShellスクリプトを公開しました。良かったら参考にしてください。(2022/3/5)

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
2
Help us understand the problem. What are the problem?