Windows 10でApple Magic Keyboardを使えるように設定する

新しいPCでMagic Keyboardを使えるように設定します。
……という作業を今まで何度も行ってきましたが今回こそ決定版として記録すべく記事にします。
今回使用するのは「Magic Keyboard(テンキー付き)日本語(JIS)」です。

手順としては、
・「英数」「かな」キーを認識させる
・「英数」「かな」キーをシステムレベルでリマップする
・Google日本語入力でキーリマップを行い「英数」「かな」キーをmacOSライクな動作にし、「control」「command」キーをAutoHotKeyでリマップする

「英数」「かな」キーを認識させる

※結果的にこの工程は必要ありませんでした。

まずはじめに、BootCamp用のサポートソフトウェアをダウンロードしました。
2020/6/30現在でバージョン5.1.5722が公開されていたためそれをダウンロード。
※サポートソフトウェアの公開終了や、Windowsシステムアップデート等で使えなくなる可能性が高く、恒久的に有効な方法とは思えないためできれば避けたかったですが、現状はこれで乗り切ろうと考えました。

ダウンロードされたzipファイルを解凍し、
bootcamp5.1.5722\BootCamp\Drivers\Apple
にある
AppleKeyboardInstaller64.exe
を実行しドライバーをインストールします。

インストール後「英数」「かな」キーの動作を確認しました。
今回は「Keymill」というソフトを使用して状態を確認します。

10進数でのキーコード
16進数でのキーコード

「英数」が一番上、「かな」が2段目、3,4段目はスクリーンショットのキー操作です。
仮想キーコードはどちらも255(0xFF)、スキャンコードはそれぞれ113(0x71)、114(0x72)と認識されました。
またどちらも遷移状態が「True」と表示されるのみで、これはキーアップのみ反応している状態のようです。

どうやらテンキー無しのMagic Keyboardなど旧型のMagic Keyboardであればこの時点で「英数」「かな」キーが「無変換」「変換」キーとして認識されるはずなのですが、テンキー付きのMagic KeyboardはBootCampのドライバをインストールしても対応してくれないようです。
これは困った……

「英数」「かな」キーをシステムレベルでリマップする

とりあえずBootCampのドライバでは対応できなそうなので、レジストリによるキーリマップを試します。

「英数」「かな」キーはとりあえず認識はされているようですが、Windows上ではどの役割も割り当てられていないようなので、これらのキーにシステムレベルでリマップして「無変換」「変換」キーの機能を割り当てます。

Magic Keyboardではスペースバーの左に「英数」、右に「かな」キーが配置されており、標準的なWindows用キーボードでは同じ位置に「無変換」「変換(または「かな」等)」が配置されています。
Magic Keyboardの「英数」「かな」キーは、標準設定のままではWindows用キーボードに存在しないキーとして認識されています。
よって、それぞれをシステムレベルで「無変換」「変換」キーとして認識するように変更を加えます。

まず本来の「無変換」「変換」キーですが、
無変換:キーコード=vk1Dsc07B、0x7B
変換:キーコード=vk1Csc079、0x79
となっています。

これに対して現状の「英数」「かな」キーは、
英数:キーコード=vkFFsc071、0x71
かな:キーコード=vkFFsc072、0x72
ということになります。

レジストリエディタを使用してキーリマップを試みます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

ここに新規バイナリ値として「Scancode Map」を作成、右クリックして「修正」を選択します。

「Scancode Map」のバイナリ値の編集 初期状態

数値を打ち込んでいきます。いろんなサイトを参考にして以下のように編集していきました。

1行目は「00 00 00 00 00 00 00 00」でなければならないようなのでそれで固定。
2行目、最初の8桁は変更するキーの数を指定しなければならないようです。数値は「1+変更するキー数」となるようで、今回は2つのキーなので「03 00 00 00」と入れました。
その後は8桁ずつ、「置き換え後(先)のキーコード・置き換え前(元)のキーコード」となるようです。
「英数」→「無変換」=スキャンコード(sc)0x71→0x7B=「7B 00 71 00」
「かな」→「変換」=スキャンコード0x72→0x79=「79 00 72 00」
とすれば良さそうです。
末尾には「00 00 00 00」を入れなければなりません。

編集後のバイナリ値

このように入れてみました。
「OK」で保存し、レジストリエディタを終了、ログオフ・ログインしてみます。

おそるおそる「英数」「かな」キーを押すと……

レジストリエディタでScancode Map編集後のKeymill

キャッ 変わってるわ!(歓

が、文字入力時の動作を確認してみても何も起こらない。
嫌な予感はしていたけど、どうも遷移状態が「True」しか無いことに問題があると思われました。
ここから先はAutoHotKeyでやるしかないか……

(追加工程)AutoHoeKeyで「無変換」「変換」キーの動作を追加する

ここまではレジストリエディタで、ここから先はAutoHotKeyで設定していくのは、以降の変更内容は他のキーボードを使用する時に元に戻したいから。
よってここからは.ahkファイルを作成していきます。

まず「無変換」「変換」キーを「アップ」した時に、再度「ダウン」「アップ」の動作が行われるようにAutoHotKeyで調整を試みます。
ただしキーのアップが二重になるため、操作がループしないように注意が必要そうです。

AutoHotKeyでは「(キー) up」「(キー名) down」と記述するだけで、キーのアップとダウンを指定することができるようです。

試行錯誤の末にたどり着いたスクリプトがこちら↓

vk1D up::Send, {vk1D}
vk1C up::Send, {vk1C}

スキャンコードで指定し、改めてキーコードを送信するスクリプトにすることで、押して離すまでの入力を送信できることが分かりました。

Keimillで確認した実際の動作

スクリプトを再読み込みしたりすると押して離すまでの動作2つだけになったりするし、その辺の詳細な動作はよく分かりませんが^^;

Google日本語入力でキーリマップを行い「英数」「かな」キーをmacOSライクな動作にし、「control」「command」キーをAutoHotKeyで「Win」「Ctrl」キーにリマップする

ここまで来れればあとは簡単(と思ってしまう自分)。
まずは「無変換」「変換」として使用できるようになった「英数」「かな」キーでIMEの有効化・無効化をできるようにします。

Google日本語入力のプロパティ「一般」タブのキー設定でキー設定の編集を選択し、入力キー「Muhenkan」に「IME無効化」、「Henkan」に「IME有効化」のコマンドを割り当てます。

ああ!これで「英数」「かな」キーが実質的に使えるようになった!
快適過ぎる!!(ここまでが長かったから……)

続いて「control」「command」キーのリマップをAutoHotKeyのスクリプトで行います。
先ほどの無変換・変換キーに関するスクリプトもテンキー付きMagic Keyboardを使用している間特有のスクリプトなので、そこに追加して以下のようにしました。

;「無変換」キーにリマップした「英数」キーを押すことでキーを再送信する
vk1D up::Send, {vk1D}
;「変換」キーにリマップした「かな」キーを押すことでキーを再送信する
vk1C up::Send, {vk1C}
;左controlキーを左Winキーへリマップする
vkA2::LWin
;左commandキーを左Ctrlキーへリマップする
vk5B::LCtrl
;右controlキーを右Winキーへリマップする
vkA3::RWin
;右commandキーを右Ctrlキーへリマップする
vk5C::RCtrl

作成したスクリプトのショートカットを作成し、
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
ここにショートカットを入れておくことでシステムの起動時に自動的にスクリプトが実行されるようにしました。
もしMagic Keyboard以外のキーボードを使うようになったらこのスクリプトが実行されないようにショートカットを削除します。

なかなか苦労しましたが理想的なものになったと思います。
常駐ソフトやツールなどはできるだけ入れたくないですし。

Windows 10でApple Magic Keyboardを使えるように設定する」に2件のコメントがあります

  1. おかげさまで、テンキー付きのマジックキーボードで、英数・かなキーが使えるようになりました。ありがとうございました。

    いいね: 1人

    1. 更新からけっこう経っていますが、今も変わらず使えるようですね!
      なにか助けになったなら嬉しいです^^
      コメントありがとうございます!!

      いいね

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。