英語配列キーボードと日本語配列キーボードを両方使いたい

こんにちは。私、普段仕事では、英語配列キーボードのノートパソコンを利用している関係で、指が英語配列にすっかり慣れてしまっているので、デスクトップのキーボードが日本語配列(家族もたまに利用するのでこれは譲れず…)が使いづらいと思いつつも長いこと我慢して利用していました。
ですが、最近になって、デスクトップの利用頻度が増えた関係で、なんとか使い慣れた英語配列キーボードをデスクトップにも導入したいとの思惑に、ぴったりのキーボードをアマゾンで見つけました。
なんと、このキーボード、英語配列なのですが、日本語キーボード設定のままでも、利用できる!!
というのがうたい文句(実際には、ベースが英語配列なのですが、一部の日本語配列のキーも印字されている)で、実際に使ってみても、便利だなーくらいに思って使っていました。
ただ、決定的に不便という部分が見つかりました。
「_(アンダーバー)がない」
これは、結構致命傷でした。最初は 日本語に切り替えて「きごう」と入力して変換していましたが、それもいつしか煩わしく…
いっそのこと、Windowsのキーボード設定を英語配列に変えてしまえば!!
実際にキーボードの設定を変更したところ、英語配列キーボードは、めっちゃ快適になりましたが、もともと有線で利用していた日本語配列キーボードも英語配列として認識され、今度は逆に使いづらくなってしまいました。
なんとか日本語配列キーボードも英語配列キーボードも快適に使う方法がないかと調べていたら、Windows 10 バージョン 21H2 / OSビルド 19044.1469以降であればできることがわかったので早速実践してみました。
あわせて、英語配列キーボードの場合のひらがな入力切り替えも仕事用ノートパソコンと同様に右altに変更してみようと思います。
はじめに
そもそもWindowsで英語配列キーボードと日本語配列キーボードをどちらも、快適に利用したいと思う人がそんなにたくさんいるとは思いませんし、Windowsでは、キーボード配列として、同時に1種類の配列しか選択できないし、配列の切り替えやOSの再起動を伴わずに英語配列キーボードと日本語配列キーボードを併用することはできません。
今回、見つけた方法は、ベースを英語配列キーボードに設定し、日本語配列キーボード側を個別に日本語配列と認識させるというやり方で、私の環境(Windows 11 Pro バージョン22H2 / OSビルド 22621.2428)では動作することが確認できました。ほかの環境では動作確認できていませんので、もしこの記事を読んで実施してみようと思う方は
※修正内容や修正方法、修正後の動作については、自己責任でお願いします。
手順
基本レイアウトを英語に変更
まずは 設定 → 時刻と言語 → 言語と地域 にある「優先する言語」の「日本語」の「オプション」にある「ハードウエアキーボードレイアウト」の設定を「英語キーボード(101/102キー)」に設定します。
Windowsを再起動して、英語キーボードの設定を有効にします。
日本語配列のキーボードに日本語配列を適用
日本語配列のキーボード(特定のキーボード)にだけ異なる配列を適用するためには、レジストリの書き換えが必要ですが、デバイスに対応する書き換え箇所を特定するのに「デバイスインスタンスパス」と言う値が必要になります。
デバイスインスタンスパスの確認方法
スタート ボタンを右クリックしてメニューから デバイスマネージャー を起動し「キーボード」のノードを開いて、その中にあるデバイス名を右クリックして「プロパティ」を開き「詳細」タブの「プロパティ」から「デバイスインスタンスパス」を選択します。
※一般的なUSB接続やBluetooth接続のキーボードですと、「HIDキーボードデバイス」として認識されているようですし、マイクロソフト製のキーボードの場合は、プロダクト名、私の場合は「Microsoft USB Digital Media Pro Keyboard(106/109)」が表示されました。
HIDキーボードとMicrosoft USB Digital Media Pro Keyboard(106/109)のプロパティ
すると「値」に
HID¥VID_xxxx&PID_xxxx&MI_xx¥x&xxxxxxxx&x&xxxx
のような文字列(デバイスインスタンスパス)が確認できると思います。
私の場合、日本語配列キーボードは、Microsoft USB Digital Media Pro Keyboard(106/109)なので、デバイスインスタンスパスは
「HID¥VID_045E&PID_00B1&MI_00¥8&F0E5E0F&0&0000」
となります。
グローバルなオーバーライド設定の無効化
レジストリエディタ(regedit.exe)で、下記のノードを開きます。
コンピューター¥HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥i8042prt¥Parameters
「Parameters」の配下に、下記の2つのキーが存在していたら、これらのキーを削除しておきます。
OverrideKeyboardSubtype
OverrideKeyboardType
日本語配列キーボードのデバイスインスタンスへオーバーライド値を設定
レジストリエディタで、下記のノードを開きます。
コンピューター¥HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Enum¥デバイスインスタンスパス¥Device Parameters
上記の「デバイスインスタンスパス」の部分には、先ほど特定した日本語配列キーボードのデバイスインスタンスパスを指定します。
値を以下のように設定します。
KeyboardSubtypeOverride ⇒ 2
KeyboardTypeOverride ⇒ 7
※私の環境の場合は、もともと設定されていました。
設定値とキーボード配列には以下のような関係があります。値からわかる通り、配列を「日本語 106/109」に設定しています。
キーボード配列 | KeyboardSubtypeOverride | KeyboardTypeOverride |
日本語 106/109 | 2 | 7 |
日本語 101/104 | 0 | 7 |
英語 101/104 | 0 | 4 |
最後に Windowsを再起動します。これで、日本語配列キーボード、英語配列キーボードどちらも、日本語、英語キーボードとして快適に利用できるようになりました。
ひらがな入力切り替えを右altに割り当て
Microsoft Store から PowerToysをインストールする
※インストールの確認ダイアログが表示されるのでOKボタンをクリックして、インストールを完了させます。
PowerToysがインストールできたら、スタートメニューから PowerToysを起動し、Keyboard Managerを選択します。
キーの再マップをクリックして、「キーの再マップ」を表示
キーの再マップの画面にある+ボタンを押して
Alt(Right) → IME(Kanji)
※私のキーボードは割り当てがないので undefined でした
OKボタンを押します。警告が出ますが、「それでも続行する」をクリックします。
無事、右下のaltでひらがな切り替えができるようになりました。
まとめ
windowsを利用する上で、入力デバイスはとても重要です。また、一般的には、英語配列キーボードと日本語配列キーボードを同時に使いたいというシチュエーションは少ないと思いますが、こんなわがままにも答えてくれるシステム。これからも末永く利用すると思うので、さらに便利な使い方を追い求めていきたいと思います。