Windowsのキー操作をmacOSライクにする

私は普段、MacBookProをUSキーボードで使っているを使っているのですが、Windowsを使う度にキー配置の違いに戸惑いと苛立ちを覚えます。いや、Windowsが悪いわけじゃないのはわかるんですが。
というわけで、レジストリ変更とAutoHotKeyの力でどうにかしてみました。
世の中にはahk-alt-ime.exe という素晴らしいスクリプトを作ってる方がいます。が、自分的にはIMEを切り替えるキーはすなわちコピペをするキーであってほしい……という思いがあるので自作してみました。
※以前公開していたものはバージョンAutoHotKey ver 1.1.26以前のものでしか動作しなかったのでv1.1.27以降対応のものと差し替えました。
最初に書いておきますが、ゲームをする場合は全く考慮していません。またもしかしたらJISでも動くかもしれませんがUSキーボードでしか動作確認していません(しかも個体差でUSでも動かないとかあるかも)。

導入

TL;DR

  1. ChangeKey でレジストリをいじってキーの配列をMacっぽい配列にする。MacのContorolキーは無変換キーにする。
  2. IMEの設定でひらがな/カタカナキーIMEオンを割り振り、英数キーにIMEオフを割り振る
  3. AutoHotKeyのスクリプト をスタートアップフォルダにぶち込む。

必要なもの

Change Key
maclike-win.exe 自作スクリプト
ソースコードはBootcamp.ahkになります。上記の .exe を使うよって人は別にダウンロードしなくてもいいです。

やること

ChangeKeyでmacっぽい配列にキーを入れ替えます。macのcontorolキーっぽい動作をするキーは無変換キーに割り当ててください。管理者権限で実行しないとダメです。
再起動を挟んだのち、IMEの設定を変更します。

常駐させるには

Win + Rを押してshell:startupを入力 or コピペしてEnter。出てきたフォルダにmaclike-win.exe もしくは .ahk をぶち込む。

解説

基本方針としては
ショートカットキーで普遍的なものはおおよそMacであればCommand、WindowsであればCTRLになる。例えば、コピーのショートカットキーはWindowsであればCTRL + C ですがMacであればCommand + Cです。
問題なのは、Bootcamp上ではCommandキーはWinキーとなってしまうこと。ControlがそのままCTRLになるのですが、これでは使い勝手がかなり違います。MacでのControlとWinのCTRLはイコールの役割ではありません。これをどうにかするためcommand(Win)キーをCTRLにします。
commandキーをCTRLにすると、今度はControlキーが余ります。そのままでも支障はありませんが、せっかくなのでMac風のキーバインドを割り当てることにしました。で、ついでにCommandキー(=CTRL)もMac風のキーバインドにすることに。Optionキーも同様に。という感じで左手側のショートカットキーをMac風にしました(私がよく使う範囲で)
そうするとWindowsのアプリが用意したキーバインドがつぶれる可能性があるので、以上の変更は全て左手側のCommand,Control,Optionキーで行い、右手側のCommand,Option,ControlはWindowsの動作が行えるように何もいじらずに残しておきます
つまり、こういうことです。

ショートカットキーが被るなどの問題や、Winキーを使いたいというときは右手側の修飾キーを使ってください。
実現するために、Change KeyAutoHotKeyを利用することにしました。
Change Keyはレジストリをいじるアプリで、AutoHotKeyは様々なホットキーなどを作成するアプリです。あまりレジストリをいじることはしたくなかったのですが、AutoHotKeyを利用するならキーリマップはレジストリをいじるのが最適解であったため導入することに。

追加されるショートカット

https://support.microsoft.com/ja-jp/help/12445/
それぞれを参考に作成しました。
「全てをMac用に」とすると大変なので、実用性が高いものを中心にスクリプトを書きました。
また、Windowsアプリが持つショートカットをつぶさないために以下のショートカットキーは基本的に左側の装飾キーのみで動作します。ご了承ください。
どうしても右側で動かしたいという人はmaclike-win.ahkを開いて<^<!>^>!に置換するか、^!に置換してください。
上記の記事のショートカットを中心に入れました。実装したショートカットを書いていきます。実際のスクリプトは貼り付けると長くなるのでスクリプトを見たい方はmaclike-win.ahkをエディタで開いてください
キーの対応は以下。

mac装飾キー win装飾キー
(レジストリで合わせる)
command ctrl
option alt
contorol 無変換

winキーは適当に余ったところへ采配した方がよいです。
ちなみにmacの装飾キーは通常以下の記号で表されます。

キー 装飾
command
option
contorol ^

IME関連

※ macでいうところの^キーはWinでいうところの無変換キーに置き換えてください

装飾キー キー 効果 送信されるキー
左 ⌘ IMEオフ(半角入力) 英数
※事前にIMEで設定しておく
右 ⌘ IMEオン(全角入力) ひらがな
※事前にIMEで設定しておく
J ひらがな変換 F6
K カタカナ変換 F7
L 全角英数変換
zenkaku
F9
半角英数変換
hankaku
F10
^ Space 半角/全角
日本語入力の切り替え
半角 / 全角

Spotlight検索

Spotlight検索はないですが、その代わりにCortanaを出します。ちょっと重いですが優秀です。windowsアプリとのショートカットを残しておくために左側のみで有効です。

装飾キー キー 効果 送信されるキー
左 ⌘ Space Cortana検索 Win + S

ReDoをどうにかする

UnDo(アンドゥ)はMac,Win共通で CTRL + Z / + Zなのですが、ReDoは違います。
Mac:Shift + Z
Win:CTRL + Y
これをMac側に合わせます。

装飾キー キー 効果 送信されるキー
+ Shift Z ReDo Ctrl + Y

文字の削除あれこれ

 装飾キー キー 効果 送信キー
^ H 文字の削除 BackSpace
^ D カーソル右の文字を削除 Delete
Backspace 行頭までの削除※ Shift + HOMEDelete
Delete 行末までを削除※ Shift + ENDDelete
Backspace 単語単位での削除※ CTRL + BackSpace

※がついているものはATOM(テキストエディタ)上では無効にしています。ATOMだとデフォルトでそう動作するのを確認したためです。

カーソル移動

装飾キー キー 効果 送信キー
   単語ごと移動 ^ +
行頭 / 行末に移動 HOME / END
ドキュメントの一番上・下に移動 CTRL + HOME / END
F →キーと同様
B ←キーと同様
P ↑キーと同様
N ↓キーと同様

デスクトップ・ウインドウ関連

装飾キー キー 効果 送信キー
^ 仮想デスクトップを移動 Win + CTRL + ← / →
^ ドキュメントフロップ
(MissionControl的な画面を出す)
Win + Tab
^ ウィンドウを左右に持っていく Win + ← / →
^ Enter ウィンドウを最大化 Win + *2
Tab アプリケーション移動
Shiftを入れての逆戻りはできないので注意
Alt + Tab
(AutoHotKey的にはAltTabを送信)

ウィンドウサイズの変更のキーはMagnetと同様にしています。

ウィンドウを最大化に関しては条件次第で動かないことがあるのであまり期待しないでください。

その他の文字入力

MacだとOptionキーを押下しつつ各種キーを入力すると特殊な文字が入るのでそれも実装しました。

装飾キー キー 出てくるもの
(句点) (全角)
(読点) (全角)
(全角)
(全角)
9
0

以上です。結構大変でしたが、私的にはかなり便利になりました。