Microsoft Remote Desktop Connection Client for Macから乗り換えたMicrosoft Remote Desktopで、Windows側のウィンドウを閉じようとして
さすがに今更Microsoft Remote Desktop Connection Client for Macに戻るわけにもいかないので対策してみた
Command キーとControl キーを入れ換えたい
Windowsでもよくある単純にこのキーとこのキーを入れ換えたいレベルでは済まない話だというのはわかる
なぜなら単純にキーを入れ換えてしまうとキーボードショートカットが全て変わってしまうから
Microsoft Remote Desktopがアクティブな時にだけ
Karabinerを使えばよさそう
Karabiner
最新版のKarabiner-Elementsでは使っている環境に対応していないようなので、旧バージョンのKarabiner 10.22.0をダウンロードしてインストールした
インストールしてみたらデフォルトでキー入れ換えの定義が入っていた
やっぱりこういう要望はあるんでしょう
デフォルトでキー入れ換えの定義が入っていました
例えば
Command_L to Contorol_L(only in virtual machine,RDC)
(仮想マシンかRDCの時だけ左側のCommand キーをControl キーにする)Contorol_L to Command_L(only in virtual machine,RDC)
(仮想マシンかRDCの時だけ左側のControl キーをCommand キーにする)
Microsoft Remote Desktopで入れ換えの定義が効かない
残念なことにMicrosoft Remote Desktop Connection Client for Macでは動作するがMicrosoft Remote Desktopでは動作してくれない
たぶんMicrosoft Remote Desktopはリリース当時には存在しなかったのかな?
定義されていなければ定義を書けばいいじゃない
ここから設定メモ
Karabinerには独自の入れ換え定義をXMLで書ける機能が備わっているようなのでそれを使います(private.xml)
KarabinerのPreferencesを選択して、[Misc & Uninstall]タブを選択すると「Custom Setting」に[Open private.xml]ボタンがあるのでクリックしますprivate.xml
というファイルが入ったフォルダが開かれるので、そのprivate.xml
をエディタで書き換えます
書き換える内容
<?xml version="1.0"?>
<root>
<appdef>
<appname>MSRDC</appname>
<equal>com.microsoft.rdc.macos</equal>
</appdef>
<item>
<name>For Microsoft Remote Desktop</name>
<item>
<name>Swap COMMAND_L and CONTROL_L</name>
<identifier>private.com.microsoft.rdc.macos</identifier>
<only>MSRDC</only>
<autogen>
__KeyToKey__
KeyCode::CONTROL_L,
KeyCode::COMMAND_L
</autogen>
<autogen>
__KeyToKey__
KeyCode::COMMAND_L,
KeyCode::CONTROL_L
</autogen>
</item>
</item>
</root>
- appdefタグでMicrosoft Remote DesktopをMSRDCとして定義する
- onlyタグでMSRDC(=Microsoft Remote Desktop)だけに限定して
- CONTROL_LをCOMMAND_Lに、COMMAND_LをCONTROL_Lにキーコードを変換する
private.xml
を書き換えて上書き保存したあとに、[Change Key]タブに切り替えて[Reload XML]をクリックするとprivate.xml
で定義したものが表示されているので有効化する
これで定義した入れ換えルールが有効化されました