こんにちは、ウマーニャです。
US配列キーボードのMacBook Proで、macOSとWindows10を併用しています。
おもにmacOSを使っていて、『左Command単体押しで英数、右Command単体押しで日本語』に切り替えられるように Karabiner-Elements というフリーソフトを使ってキー割り当てをしています。
ただBootcampでWindows10も使っていて、そのたびに操作の違いで苦労していました。
例えばショートカットキーがCommandでなくCtrlだったり、かな英数切り替えが『Option+`』(クッソ押しにくい)だったりします。
そこで、macOSで自分が使っているのと同じように
・左Commandで英数、右Commandで日本語入力に変更できる
・左CommandをCtrlとしてショートカットに使用できる
という設定にしたので、今回の記事ではその方法をまとめています。
これを読めば、USキーボードMacの操作感そのままでWindowsを使うことができます。
まずCommandキー(Windowsキー)とCtrlキーを入れ替える
BootcampのWindowsだと通常CommandキーはWindowsキーとして動作します。そして、例えばコピーする場合Command+CではなくCtrl+C、ペーストはCtrl+Vとなります。
これ普段Command+Cに慣れているマッカーには不便ですよね。Command押すたびにスタートメニュー開くのも困ります。
そこでまずCommandとCtrlを入れ替えます。
以下の記事を参考にすると簡単にできます。
Command/Ctrl以外のキーバインドも変更したい場合は以下の記事が参考になります。

これでCommandキーをCtrlキー、CtrlキーをWindowsキーとして使えるようになりました。
(BootcampでなくMicrosoft Remote Desktopの場合はKarabinerに以下を追加する。その際、普段macOSで使っている「コマンドキー→英数・かな」のコマンドよりも上に置く。「↑↓」アイコンをドラッグすると順番が変えられる)

Commandキーでかな/英数を切替できるようにする
日本語IMEの設定
次に左右のCommandキーを単体で押したときにIMEオン/オフ(かな/英数切替)をできるようにします。(2020/7/29更新)
タスクバーで「A」とか「あ」とか書いてあるのを右クリックして、設定をクリックします。

「キーとタッチのカスタマイズ」→「キーの割り当て」→「各キーに好みの機能を割り当て」をオン。
無変換キーは「IME-オフ」、変換キーは「IME-オン」をそれぞれ選択すれば完了です。

参考:日本語IMEの設定(Windows 10 旧バージョンでのやり方)
May 2020以前のWindows 10を使っている方は、以下の記事の「日本語IMEの設定」という章に従ってIMEの設定をしてください。
AutoHotKey
まずはAutoHotKeyをWindowsにインストールしてください。
次に、こちらの記事の「AutoHotKey」の章を参考にahk形式のファイルを作っていきますが、これではショートカットがCommandキーで使えなかったり、CommandとCtrlが逆だったりするので、改良版を以下に載せておきます。
メモ帳に以下のテキストをコピーして、「usmac.ahk」などのahk形式で保存します。保存場所はどこでも大丈夫です。
#USEHOOK ON
LCtrl::Send, {vk1Dsc07B} ;左Ctrlに変更した左Commandを単体で押すと無変換キーが入力されたことになる
RCtrl::Send, {vk1Csc079} ;右Ctrlに変更した右Commandを単体で押すと変換キーが入力されたことになる
LCtrl & WheelDown::Send, ^{WheelDown} ;左Command+下スクロールで縮小など
LCtrl & WheelUp::Send, ^{WheelUp} ;左Command+上スクロールで拡大など
LCtrl & Enter::Send, ^{Enter} ;左Command+Enter
;以下は左Command+アルファベット(+Shift)
LCtrl & a::
If GetKeyState("Shift", "P")
Send, ^+{a}
Else
Send, ^{a}
Return
LCtrl & b::
If GetKeyState("Shift", "P")
Send, ^+{b}
Else
Send, ^{b}
Return
LCtrl & c::
If GetKeyState("Shift", "P")
Send, ^+{c}
Else
Send, ^{c}
Return
LCtrl & d::
If GetKeyState("Shift", "P")
Send, ^+{d}
Else
Send, ^{d}
Return
LCtrl & e::
If GetKeyState("Shift", "P")
Send, ^+{e}
Else
Send, ^{e}
Return
LCtrl & f::
If GetKeyState("Shift", "P")
Send, ^+{f}
Else
Send, ^{f}
Return
LCtrl & g::
If GetKeyState("Shift", "P")
Send, ^+{g}
Else
Send, ^{g}
Return
LCtrl & h::
If GetKeyState("Shift", "P")
Send, ^+{h}
Else
Send, ^{h}
Return
LCtrl & i::
If GetKeyState("Shift", "P")
Send, ^+{i}
Else
Send, ^{i}
Return
LCtrl & j::
If GetKeyState("Shift", "P")
Send, ^+{j}
Else
Send, ^{j}
Return
LCtrl & k::
If GetKeyState("Shift", "P")
Send, ^+{k}
Else
Send, ^{k}
Return
LCtrl & l::
If GetKeyState("Shift", "P")
Send, ^+{l}
Else
Send, ^{l}
Return
LCtrl & m::
If GetKeyState("Shift", "P")
Send, ^+{m}
Else
Send, ^{m}
Return
LCtrl & n::
If GetKeyState("Shift", "P")
Send, ^+{n}
Else
Send, ^{n}
Return
LCtrl & o::
If GetKeyState("Shift", "P")
Send, ^+{o}
Else
Send, ^{o}
Return
LCtrl & p::
If GetKeyState("Shift", "P")
Send, ^+{p}
Else
Send, ^{p}
Return
LCtrl & q::
If GetKeyState("Shift", "P")
Send, ^+{q}
Else
Send, ^{q}
Return
LCtrl & r::
If GetKeyState("Shift", "P")
Send, ^+{r}
Else
Send, ^{r}
Return
LCtrl & s::
If GetKeyState("Shift", "P")
Send, ^+{s}
Else
Send, ^{s}
Return
LCtrl & t::
If GetKeyState("Shift", "P")
Send, ^+{t}
Else
Send, ^{t}
Return
LCtrl & u::
If GetKeyState("Shift", "P")
Send, ^+{u}
Else
Send, ^{u}
Return
LCtrl & v::
If GetKeyState("Shift", "P")
Send, ^+{v}
Else
Send, ^{v}
Return
LCtrl & w::
If GetKeyState("Shift", "P")
Send, ^+{w}
Else
Send, ^{w}
Return
LCtrl & x::
If GetKeyState("Shift", "P")
Send, ^+{x}
Else
Send, ^{x}
Return
LCtrl & y::
If GetKeyState("Shift", "P")
Send, ^+{y}
Else
Send, ^{y}
Return
LCtrl & z::
If GetKeyState("Shift", "P")
Send, ^+{z}
Else
Send, ^{z}
Return
#USEHOOK Off
作成したahkファイルを右クリックして「Run Script」を選択します。何もエラーが出なければ成功です。
ただ上記の方法の大きな欠点が一つあって、それはショートカットに右Commandキーが使えないということです。
(スクリプトのLCtrlをRCtrlに書き換えたものを追加すると、かな/英数切替がなぜかうまく動作しなくなるのです。個人的には左Commandでしかショートカットを使わないので問題はないのですが……)
Visual StudioなどでCtrl+記号のショートカットを使用する方は、必要に応じて以下のキーリストを参考にして#USEHOOK Offの前に書き足していってください。アルファベットを記号に変えて追加するだけで良いはずですが、:(コロン)や;(セミコロン)はホットキーとコメントを表す記号なのでsc028、sc027に書き換えてください。
↓AutoHotKeyのキーリスト
Windows起動時に自動でAutoHotKeyが起動するようにする
最後にAutoHotKeyが自動で起動するようにする方法です。
Windowsキー+R (Windowsキーは、AHK起動時ならCtrl、未起動時はCommandです) を押し、「shell:startup」と入力するとスタートアップフォルダが開きます。ここにusmac.ahkのショートカットを入れておくと次回起動時から自動でAutoHotKeyが起動します。PC起動後10~20秒ぐらいで有効化されます。
まとめ
今回はUSキーボードMac&KarabinerユーザーがBootcampする際のキーバインドの方法をまとめました。
・左Commandで英数、右Commandで日本語入力に変更できる
・左CommandをCtrlとしてショートカットに使用できる
個人的にはWindowsがかなり快適に使えるようになったので、お困りの方は一度試してみていただければと思います。
コメント