はじめに
自作キーボードの到達点の一つ、Keyball44。親指トラックボールと分割レイアウト、そしてRemapサービスによる自由なキーマップ。これさえあれば、もう何もいらない……はずでした。しかし、MacBookをメイン機にし、Windowsをサブ機として並行運用する中で、どうしても拭えない「OSの壁」があります。それが、CommandとControlの入れ替わり問題です。
これが結構ややこしい
OSを跨ぐたびに指のメモリを切り替えるのは、思考のノイズでしかありません。私はこれまで、Karabiner-Elements(Mac)やPowerToys(Win)を駆使し、それぞれのOS側で歩み寄らせようと奮闘してきました。しかし、OSアップデートのたびに設定が不安定になったり、特定の環境でだけ挙動がズレたりと、その度にえっちらおっちらメンテナンスするのは心底なんとかしたいと思っていました。
KeyBall 44のキーマップ(右側デバイスにMacOSを接続)
キーマップはこんな感じです。

Layer3のPrintScreenキーはMacOSとWindowsとで切り分ける形にしています。
画面のキャプチャーはREMAPでは難しいので個別に設定しています。将来的にはファームウェアビルドで対応してみたいです。
PrintScreenキーの設定は小細工しています。こちらはまとめの章で補足します。
Synergyという救世主
そんな私が行き着いたのが、有償ツールのSynergyです。単にマウスを共有するだけのソフトだと思っていましたが、実は「修飾キーの動的な通訳機」としてもとっても有益な機能を備えていました。
設定一つで解決です
ServerをMac、ClientをWindows 11に設定します。
Macに導入したSynergyの「Configure Server」からClient(Windows )の設定を開きます。
Modifier Keysセクションで以下の設定を行います。
ControlをSuper (Command)Super (Command)をControl
設定変更はこれだけです。実際の設定画面は以下の通りです。Earth(Windows)の設定に注目してください。

マウスのスクロールも揃えておきましょう。
マウスのスクロールもMacOSとWindowsでは動きが逆なのは周知で、これも結構面倒でした。
ところがWindows11からは標準でサポートになった様で手間がかからなくなりました。これは嬉しいですね。

「ダウンモーションで下にスクロール」これでMacOSの動きと同じになります。
個人的にもこの設定の方が直感的かなぁと思っていました。
左手デバイスもなんとなく共有できました
あまり意識していなかったのですがUSBキーボードとして複数を共有できます。私は左手デバイスとしてLoopdeckを利用しているのですが、こちらもキーボードとして認識されている様です。とはいえ、専用のアプリは当然ながら接続されていない認識してくれないので、ただ共有されていただけでした。今回の修飾キーの入れ替えができているので、いくつかのキーボードショートカットがMacとWindowsで操作上は同じです。無意識にWindowsで操作していることに気がつき、あれ?っと思ったのですが、確かにシームレスに使えています。
しかしながら、Windows側のコントロールアプリは未接続なので注意が必要です。とはいえ、重い作業やメディア再生はWindowsにお任せしているので、ながら作業中に意識しないで左手デバイスで操作できるのはいいですね。MacOSとWindwsとで設定も共有できる左手デバイスがあったら本当に便利そうです。

日本語入力に一癖あり
メインがmacOSなので気にしていなかったのですが、たまにWindowsでSynagyの元で日本語入力を行うことがあります。
その際、どうにも日本語と英語の切り分けがうまくいきません。
Synagyを経由したKeyball44とWindows機に接続したキーボードとでMS-IMEの設定を切り替えるのも難しいので、なんとか折衷案を検討しました。
とりあえずKeyball自体が英語キーボードなのに日本語キーをマップしているので、思った通り一癖為ありました。
- どうやらLang1キー(Keyballの左側に設定)はMS-IMEは拾ってくれますがLang2キー(Keyballの右側)は拾いません
- MSーIMEはLang1キーを無変換キーとして認識している様だ…(調べると、韓国語キーの変換キーとでました)
- Windowsに接続したキーボードの無変換キーをMS-IMEは拾ってくれない。(Synogyの仕様?)
深掘りすると帰って来れなさそうなので、PowerToyのKeyboard Managerを利用して対応しました。

Lang1キーをIMEのオンオフに設定します。
これでmacOSとWindowsの言語切り替えのアクションが近くなります。これくらいは個人的には許容範囲かな。

Keyboard ManagerをつかってWindowsに接続したキーボードの無変換キーをKeyball44のLang1キーの値にマッピングします。
- VK235:Windows11における正規の無変換キー
- VK243:Windows11におけるUS形式の半角/英数キー
なるほど、確かにmacOSキーボード配列とWindowsキーボード配列の混在状態なのですね。US形式なので変換キーがないのも理解できます。面倒クサイなぁ…本当に統一してほしいなぁ…
ともかく、Windows側をUSキーに見立てて、整理するイメージで理解することにします。
Windows側での操作も、ほとんど気にならない様になりました。
まとめ:もっと早く導入すればよかった
Keyball44を使い込むほどに修飾キーに違いは違和感でした。そういった方は少なくないはずです。この設定をしておけばキーボードは常に同じ挙動をし、SynergyがOSに合わせて「通訳」してくれる。この役割分担こそが、マルチOS環境の正解でした。
左側デバイスのPrintScreenキーの設定
Synergyを間に挟むのでREMAPでの修飾も変換されてしまいます。

本来のショートカットはShift +Super (Command)+S です。修飾キーが入れ替わっているのでREMAP上はShift +Ctrl+S として設定しています。
KeyBall 44のキーマップ(左側デバイス)
もちろんWindws単体での操作のために、KeyBallの左側にはWindows用に修飾キーを入れ替えておくとWindows単体での利用時も慣れた操作で利用することができます。

タブキーの長押しはSuper (Command)、Winキー自体は長押しでCtrlに設定して使い勝手をそろえてみました。
あまり使わないので、もう少しだけ調整が必要かもしれません。
ちなみにPrintScreenは正規のショートカットでMacOS用とWindows用を登録しています。



コメント