リモートワークによってMacBookから会社のWoindowsへリモートデスクトップ接続しなければならない事情もありノーカスタマイズでは生きていけなくなってしまいました。MacBookを使っていてもWindowsと同じように Ctrl+c
Ctrl+v
を迷いなく使うための設定方法をまとめます。
はじめに
基本的には @qyen さんの書かれている 『WindowsユーザーがMacOSでRemoteDesktop越しにWindowsを扱うときのキーマップ』 の内容そのままで実現できたのですが、私の環境に合っていない部分があったので備忘のために改めて書き残します。
業務環境
参考までに私が仕事しているPC環境についてまとめます。Macをメインで使いつつも、Winodwsを使わざるを得ないシーンがあることが問題を生み出しています。
- メイン:MacBook Pro
- 自宅のリモートワークで使用
- 外付けで日本語109キーボード(私はRealforce派)使用
- VPN経由でオフィスのWindowsへリモートデスクトップ接続するケースあり
- サブ:WindowsのデスクトップPC
- オフィスのデスクに残されたままのPC
- スプレッドシート化されていないExcelなどの過去のドキュメントの参照と編集
- 諸事情によりWindowsのローカルに構築しているちょっとした作業環境
- 接続アプリ: Microsoft Remote Desktop Beta
- 諸事情によりAppStoreに公開されているMicrosoft Remote DesktopではなくBeta版を使用
問題点
私のように物心ついたときには左手小指を軸に Ctrl+c
Ctrl+v
でコピペをしていた人間はMacの環境でも左手小指を軸にコピペがしたいのですが、Mac(の初期設定)とWindowsでコピペに互換性がないことが問題を複雑にしています。
- Macの場合はコピペに
command
を使う - Macのキーボードは、Windowsでコピペするときの
Ctrl
の位置にcommand
ではなくCaps Lock
がある - Macからリモートデスクトップ接続してWindowsでコピペするときはMacの
control
がWindowsのCtrl
になる
事前準備
はじめに、おなじみの Karabiner-Elements をインストールしておきます。Karabiner-ElementsはMacのキーボードをカスタマイズするソフトウェアです。
参考:快適キーボード操作のためのキーカスタマイズ ~Mac編~
Macのキーボード設定
まずはMacローカルで作業するときにWindowsと同じ感覚でコピペできるようにします。
ちなみに、Macローカルだけなら システム環境設定>キーボード
の 装飾キー
からもキーボードの動作を変更できますが、これだけではリモートデスクトップ時の問題が解決できないので、混乱回避のためシステム環境設定はいじらず、なるべくKarabiner-Elementsにまとめて設定する戦略をとりました。
MacBook本体のキーボード設定
MacBook本体でWindowsの感覚でコピペできるように左下のキーを変更します。
- 左下の
Caps Lock
をcommand
に変更
日本語109外付けキーボードの設定
外付けキーボード(繰り返しますが私はRealforce派)でもWindowsの感覚でコピペできるようにします。Macのコピペは Ctrl
ではなく command
を使うので、109キーボードをMacにつないだ状態でWindowsと同じようにコピペするには Ctrl
キーを command
に置き換える必要があります。あとはお好みですが私の場合は109キーボードの Caps Lock
や 無変換
、 変換
などはMacに合わせて動作するようにしています(要は左下のキーでコピペできればあとはMacのままでいい)。
- 左下の
Ctrl
をcommand
に変更 -
Caps Lock
はMacに合わせてcontrol
に変更 -
無変換
は英数
に変更 -
変換
はかな
に変更
Remote Desktopの設定
これで完璧なコピペマスターと思ったところでしたが、残念ながらリモートデスクトップ接続した途端にまたMacとWindowsの互換問題の闇に襲われます。
リモートデスクトップ接続時だけキーを入れ替える設定
前述のMacのキーボード設定によってMacBook本体と外付けキーボード(私の場合は(ry)の左下のキーはすべて command
が割り当てられています。これをリモートデスクトップ接続時だけ Ctrl
に置き換えれば問題は解決します。これはKarabiner-Elementsの「Complex modifications」で設定できます。
左下の「Add rule」ボタンを押して、「Import more rules from the Internet(open a web browser)」を押すとブラウザが立ち上がります。
このサイトではComplex modificationsの代表的な設定パターンがあらかじめ公開されていて、自分が導入したいものを選んで自分の環境にImportすることができます。
karabiner-elements-complex_modifications
実はこのサイトに「Remote Desktop」というメニューが公開されていて、「リモートデスクトップ接続時だけ command
を Ctrl
に置き換える」という、まさにやりたいことが実現できます。
ただ、私が使っているのは「Microsoft Remote Desktop Beta」なので残念ながらこの設定をImportしてもやりたいことが実現できません。そこで、この「Remote Desktop」を「Microsoft Remote Desktop Beta」向けにさらにカスタマイズします。Importの横のボタンでメニューを開き、「Edit JSON(Open external site)」を選択します。
Complex modificationsの設定はJSON形式で記述します。中身の仕様さえ理解できれば自分で好きなようにカスタマイズできます。今回は「Microsoft Remote Desktop」向けに設定している内容を「Microsoft Remote Desktop Beta」向けに書き直せば良いわけです。中身を見てみると「Bundle Identifiers」にそれらしき設定があります。com\.microsoft\.rdc\.mac
となっている部分を com\.microsoft\.rdc\.osx\.beta
に書き換えます。
同様の記述が4箇所ほどあるので全て同じように書き直して、「INSTALL!」ボタンを押してカスタマイズした内容を自分のKarabiner-Elementsに取り込んで最後に「Enable」にすると設定完了です。
「Complex modifications」の「Enabled rules」に反映されています。確認できたらリモートデスクトップ接続して Ctrl+c
Ctrl+v
をお楽しみください。
なお、キャプチャの画面では既存の設定と混在しないように Modification Title
と 1st Rule Description
も変更しています。参考までに書き換え版のJSONファイルをGistに置いておきます。
参考:Swap command and control (for MRD Beta)
ちなみに、「Microsoft Remote Desktop Beta」向けに書き換えた「Bundle Identifiers」はアプリを一意に特定する識別子です。アプリのパッケージの内容を表示して確認することができます。
参考: Bundle Identifierを確認する - はらふじ備忘録
おまけ:Windowsのレジストリ変更
Macからリモートデスクトップ接続するとなぜか英語キーボード判定されてしまう問題もあります。この問題はWindowsのレジストリを変更することで解消します。合わせて設定しておけばリモートワークでも穏やかなコピペライフが訪れることでしょう。