Bootcampでのキーボードを本気で快適にする

BootcampはMac端末上でWindowsを利用できるようにするシステムですが、不便なところが多いです。

Apple様があまり力を入れてくれないので、例えばトラックパッドはナチュラルスクロールではないし、USキーボードに至っては全角/半角の切り替えがデフォルトでできません。

そして一番の問題はショートカットキーの違いです。Macで慣れたショートカットキーが利用できないのです。これは問題。

というわけで、今回はそれを解消すべく本気で取り組んだ。頑張った。

最初に書いておきますが、ゲームをする場合は全く考慮していません。また、もしかしたらJISでも動くかもしれませんがUSキーボードでしか動作確認していません(しかも個体差でUSでも動かないとかあるかも)。そして重要なことなのですが私にとって最も快適な動作をするようにしていて、使うユーザーに合わせて書き換えてくれればと思います。

※記事中の言葉は以下のようになっています。
Winキー:WindowsでのWinキー
CTRL:WindowsでのControl(CTRL)キー
ALT:WindowsでのALTキー
Command:MacでのCommandキー、あるいはキーボードに印字されているキー
Control:MacでのControlキー、あるいはキーボードに印字されているキー
Option:MacでのOption(alt)キー、あるいはキーボードに印字されているキー

{{TOC}}




導入

必要なもの

Change Key
AutoHotKey Ver1.1.*を推奨
Bootcamp.ahk 私が自作したスクリプトです。右クリックで保存してください。

やること

Change KeyでWin左キーCTRL左にします。これで⌘キーがCTRLとして動作するようになります。そして、最初からあったCTRL左無変換にします。Controlキーが無変換になります。

続いてBootcamp.ahkをAutoHotKeyで実行してください。

もし私のブログの記事か何かを参考にIMEの設定を変えている人はデフォルトの「Microsoft IME」の設定をお使いください。

常駐させるには

右クリックでショートカットを作成し、次のどちらかのフォルダに突っ込んでください。

ユーザー個人のスタートアップ:
C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

全ユーザーのスタートアップ:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

解説

基本方針としては

ショートカットキーで普遍的なものはおおよそ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を利用するならキーリマップはレジストリをいじるのが最適解であったため導入することに。

Mac風の動作とは?

複数のキーを組み合わせて押す方法で、通常はマウスやトラックパッドなどの入力デバイスが必要な操作を実行できます。

それぞれを参考に作成しました。

「全てをMac用に」とすると大変なので、実用性が高いものを中心にスクリプトを書きました。

Macにおけるキーボード操作や日本語入力のショートカットなどを記しておきます。私がよく使っているものです。実用性が高いものだと自負できます。 注意してほしいことが一つあります。似た機能で、近いところ...

上記の記事のショートカットを中心に入れました。実装したショートカットを書いていきます。実際のスクリプトは貼り付けると長くなるのでスクリプトを見たい方はBootcamp.ahkをエディタで開いてください

※Macでは + Spaceで入力切替、^ + SpaceでSpotlight検索の呼び出しという人もいるかもしれませんが、現在のデフォルトは + SpaceでSpotlight、^ + Spaceで入力切替のようなのでそちらに合わせました。

IME関連

装飾キー キー 効果 送信されるキー
J ひらがな F6
K カタカナ F7
L 全角英数
zenkaku
F9
半角英数
hankaku
F10
^ Space 半角/全角
日本語入力の切り替え
半角 / 全角

Spotlight検索

Spotlight検索はないですが、その代わりにCortanaを出します。ちょっと重いですが優秀です。ショートカットキーはSpaceです。

; Spotlight検索の代わりにWinキーでCortanaさんを出す
    LCtrl & Space::send,#{s}

ReDoをどうにかする

UnDo(アンドゥ)はMac,Win共通で CTRL + Z / + Zなのですが、ReDoは違います。
Mac:Shift + Z
Win:CTRL + Y

これをMac側に合わせます。

; Redo(リドゥ)のキーが違う件についてどうにかする
; Mac: Command + Shift + z , Win: CTRL + Y
    LCtrl & z::
        if GetKeyState("Shift","P")
            send,^{y}
        else send,^{z}
        return

以上で + Shift + Zを押した際にリドゥになります(内部的にはCTRL + Yを発行)。

AutoHotKeyの仕様上、コンビネーションキーと呼ばれる書き方では3つのキーの組み合わせができません。なのでIF文を書いてShiftを入力していないときは普通のキーを出力するようにしています(冗長かもしれません)。

文字の削除あれこれ

 装飾キー キー 効果 送信キー
^  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と同様にしています。

こんにちは。 WindowsだとWin + 矢印キーで画面を綺麗に左右へ分割できるのをご存知でしょうか? 残念ながらMacにはそれがありません。 代わりにMacにはSplitViewというものがあ...

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

その他の文字入力

MacだとOptionキーを押下しつつ各種キーを入力すると特殊な文字が入るのでそれも実装しておく。私はよく使うのですが、必要ないって人はこの部分を削除してください。

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

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