WinとMacの２台をマウス１個で操る「Synergy買ってるんですか？Barrierありますよ？」

# あらすじ

「WinとMacの両方で実機確認しなきゃ！」
「WinとMacが両方必要なんだけど、マウスを持ち変えるのが面倒。」
「サボりたいなー」って時ありませんか？
それを解決するツールがありました！Barrierって言います。
カタカナ読みすると「バリア」ですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/61b820e4-df15-e0ec-da93-773aa32a2626.png)


# Barrier

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/fec9f67b-858e-c3f2-4865-fe5f070dc691.png)

LAN内でマウスを共有して複数のパソコンを１画面として使うことができる「Barrier」というソフトがあります。
このソフトウェア開発プロジェクトのリポジトリは[Github](https://github.com/debauchee/barrier)にあります。そして、Symless の Synergy というソフトからフォークしたプロジェクトです。商用の有償ソフトであるSynergyから、マウスとキーボード要素だけを取り出して無償化されています。

似たツールで、「[Microsoft Garage Mouse without Borders](https://www.microsoft.com/en-us/download/details.aspx?id=35460)」がありますが、こちらはWindowsのみの対応です。

また、このソフトはマウスの位置情報だけをやり取りしています。そのため、リモートデスクトップのように映像の遅延などはほぼありません。
複数の仮想化OSをマルチディスプレイで利用するのと、どちらがいいのかTPOを考える必要がありそうです。

考えられる選択肢

- [Parallels Desktop ](https://www.parallels.com/jp/products/desktop/pro/)
- [Barrier](https://github.com/debauchee/barrier)
- [Remote Desktop](https://www.microsoft.com/en-us/p/microsoft-remote-desktop/9wzdncrfj3ps)
- [Chorme Desktop](https://remotedesktop.google.com/home)

# インストール

安定版は[リリースページ](https://github.com/debauchee/barrier/releases)から、
「**New Stable Release**」と書いてあるものを探してみてください。

ダウンロードするインストーラーは下記表を参考にしてください。

|対象OS|インストーラー拡張子|
|:-:|:-:|
mac | dmg
linux | tar.gz
win | exe

ちなみに、Chocolateyを使っている場合は、

```
choco install barrier -y
```

Homebrewを使っている場合は、

```
brew cask install barrier
```

でインストールできます。

# 設定

インストールが終了したらまずは、親PCを決めます。使いたいマウスとキーボードが接続されているPCが親です。親が決まったら、親PCの設定画面では「Server」にチェックを入れます。もちろん、子PCでは「Client」にチェックを入れます。

親子の割り振りが完了したら、親の設定画面に書かれているIPアドレスを子の設定画面でサーバーIPと書かれた部分に書き込みます。子のAutoConfigのチェックは外しておきましょう。この時、親でVirtualBoxを使っていたり、LANが複数ある場合には、IPが複数表示されます。子と親がやり取りできるIPアドレスを選びましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/a05eb14a-f637-c148-22b5-75c91ec79f1a.png)

親の方では、「Barrier」→「Change Settings」からIPと画面の名称が変更できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/b2133e82-e441-959a-a51f-e316ae89068f.png)
画面の配置換えも親の設定画面にある「サーバーを設定」ボタンから行うことができます。
１つのPCに２画面あるときはどうするんでしょうね？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/18c937ab-c4fd-fcda-2c06-5f63e1021440.png)

初めは子の設定がないので、右上の画面ボタンを、格子の好きな部分にドラッグドロップして配置しましょう。この時、子の設定画面を元にして、画面の名前を入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/02b15661-9a9c-a281-e50b-f82905811f3b.png)



設定ができたら、親も子も「開始」ボタンをクリックしましょう。
そうすると、子の方では「FingerPrint」が表示されますので、親の設定画面に元々表示されているものと一致するか確認します。正しければ「OK」をクリックして大丈夫です。接続ができれば、Connectedと表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/299082e4-2d5b-7dd4-71d0-b17f8a7a1838.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/43751ebe-200f-744e-0e28-d0f14971710a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/9dddc5e0-2f03-36e6-7b52-4b7fb80a07e2.png)
鍵マークが両方とも表示されたら完了です。
鍵マークにできないときは、ファイアウォール設定ができていない可能性があります。
今回Macは子でした。そのため、「システム環境設定」→「セキュリティとプライバシー」から、アプリケーションファイアウォールの例外に設定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/cedd9c09-c5d5-e980-f6d0-f1e3799ae835.png)

親になる方はポートを開放してListen状態を作ってあげましょう。
ポートはデフォルトで24800です。

今回はWinが親だったため、以下の感じで設定しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/078dc1e3-162e-e99e-58af-af270e8f43fb.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/d1a999df-72e4-0559-4c2a-ebeb364f6007.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/de8fe10c-35e2-69f0-db18-cda01a9305ee.png)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/134703/bf7c5a9c-2db8-3839-e799-39d171275c2f.png)

ファイアウォール設定をするときに気をつけてほしいのが、サーバーが`barriers.exe`で、クライアントが`barrierc.exe`であるということです。

# まとめ

これで、WinとMacの間でマウスカーソルが自在に行き来できるようになりました。スッキリですね。
皆さんもやってみてください。ストレスフリーになれると思います。

上手くいかない場合がありましたら、ぜひコメント欄にてご連絡ください。当記事に追記させていただきます！

**Excelsior**