MacBookAirをMacMiniの外部モニタ、キーボード、パッドとして使用する

## M1 MacBookAirからM4 MacMiniに乗り換えました！

今まで使っていたM1 MacBookAirがちょっとギリギリになってしまって
- SSD 256GB中 98%使用（たまにオーバー）:thumbsdown::unamused:
    - 月１ぐらいで不要ファイル削除
    - Dockerは仕方なく外付けSSD
        - スリープすると **ディスクの不正な取り出し** と怒られてしまいいちいち外して接続しなおす
- CPUが大体100%付近張り付き
    - 通常の動作がもっちゃりもっちゃり:scream:
- メモリ 16GBもカツカツ

と、大変な状況だったので、この期に出たばかりのM4 MacMiniに変えてみようかと！
購入したらとても安くて、小さくて邪魔にならず、とても満足でした:relaxed:

打ち合わせやプレゼンなどの外出時に使用もあるので、今までのM1 MacBookAirはそれ専用にしようかなと

## でもモニタ、キーボード、パッドどうするの？

MacMniはご存知の通り、 **モニタ、キーボード、パッド** を自分で用意せねばなりません:point_up:

一応、モニタは外付け２枚ありますが、今まではMacBookAirのモニタも含めて３枚で作業していたので、不便さがあがります

また、キーボード・マウス（パッド）も用意せねばなりません！（）
購入するにしても、 **純正はお高い** :scream_cat:

これらを全部揃えると  **3 ~ 5万は超えてしまいそうです** 

※家にはキーボード、タッチパッド、マウスなど、あるにはあるけどWindows用なのでMacだと使いづらい:no_good_tone1:
※MacMini + 周辺機器買うならPro買えばよかったじゃんと後悔してしまう可能性が大



### 眼前にモニタもマウスもタッチパッドもあるじゃあないか

なんということでしょう、目の前にある、このMacBookAirはすべてを兼ね備えているではありませんか！
でもスペック不足で買い替えたから、 **やっぱりMacBookAirにする！は天が許しても自分が許しません**:angry:

でも、買い替えた理由は開発をゴリゴリやると足らないのであって、 **外出時はM1 MacBookAirで超十分！** 

これをMacMiniの周辺機器として使いつつ、外出時はMacBookAirにできないか？というのが今回の戦いです:muscle:


## ミッチョン(やりたいこと）

```mermaid
sequenceDiagram
    participant MacMini
    participant MacBookAir

    Note left of MacMini: 画面共有を利用
    MacMini->>MacBookAir: デスクトップを表示
    MacBookAir->>MacMini: サブディスプレイとして表示

    Note left of MacMini: ユニバーサルコントロール or Synergyなどを利用
    MacBookAir->>MacMini: タッチパッド入力を送信
    MacBookAir->>MacMini: キーボード入力を送信
```

- MacMiniの画面出力を拡張ディスプレイとしてMacBookAirにする
- MacBookAirのキーボード、タッチパッドでMacMiniを操作する

### 1.MacMiniの画面出力を拡張ディスプレイとしてMacBookAirにする

これは色々と手段がありまして

- Mac純正の機能で外部ディスプレイ化
- アプリを使用して外部ディスプレイ化
- デバイスを使用して外部ディスプレイ化

の３パターンもありまぁす！:relaxed:
もう勝ったも同然


#### 1-A Mac純正の機能で外部ディスプレイ化

Mac to iPadなどであればサイドカーなどがありますが、Mac to Macにはないので
画面共有として行います！

設定は簡単！
同じApple IDでログインしつつ、同じネットワークにつないで、ディスプレイの設定から拡張ディスプレイにするだけ！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23468/16bbc551-bca1-4c7c-8611-f912ef430d67.png)

これだけで、外部ディスプレイとして認識されます :relieved:

##### メリット

めっちょ簡単
アプリとかも不要

##### デメリット

ネットワーク経由のせいか、ちょっと遅延するみたいに見える

#### 1-B アプリを使用して外部ディスプレイ化


[Duet Display](https://www.duetdisplay.com/ja)などのアプリを使用して外部ディスプレイ化！

遅延は若干少なくなります！

##### メリット

遅延が少し軽減

##### デメリット

アプリが基本、有料:weary: (トライアルあり）
アプリ起動がめんどくさい（サーバ、クライアントともに必要）

### 1-C デバイスを使用して外部ディスプレイ化

[Luna Display](https://astropad.com/product/lunadisplay/)というのを使用して、完全な外部ディスプレイにできます！
また、Thunderbolt経由で使えるので、遅延がほぼ０です！（ヒュ～:kissing:)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23468/7b22a2f9-78a3-4f3a-b33c-7524b9e85b57.png)


**いやもうこれ一択っしょ、ってことでこれは買いました！**

※後述しますが失敗しました。

##### メリット

遅延０！完全外部ディスプレイ！

##### デメリット

- アプリ起動がめんどくさい（サーバ、クライアントともに必要）
- 高い
    - Luna Display10,000 ~ 16,000円ほど
    - Duet 年間 8,000~ 買い切りでも30,000円とか


### 2. MacBookAirのキーボード、タッチパッドでMacMiniを操作する

これも主に②種類の方法がございます！

- Mac純正機能しか勝たん＊（ユニバーサルコントロール）
- アプリでMac以外も操作

#### 2-A Mac純正機能しか勝たん＊（ユニバーサルコントロール）

Appleはもう見越していた！

macOS 13から使えるようになった **ユニバーサルコントロール** という機能をご存知でしょうか？

画面共有と同じく、同じAppleIDの近くのMacの入力などを共有できるという神機能！:japanese_goblin:

もう勝ち確ですわ


**なんか設定に出てこないので、拾い画ですが**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23468/bdf3ead9-f29e-4a9b-9e98-7cb09ccc78f0.png)

こんな簡単に同じマウスキーボード使用できます！

##### メリット

簡単！アプリも不要！

##### デメリット

設定に出てこないときがある（昨日はいた）:frowning2:
色々試してどうやったら出てくるのかわからないので、いたらラッキーぐらいな感じ？

#### 2-B アプリでMac以外も操作

別にユニバーサルコントロールじゃなくてもアプリでも操作できますし、なんならOS問わず使えるので、こっちのが便利な人も多いかも！

キーボード、マウスシェア系はいくつかありまして

[Synergy](https://symless.com/synergy)
- OS問わず、複数のデバイスで、マウスを行き来可能！
- 有料

[Barrier](https://github.com/debauchee/barrier)
- Synergyの派生で必要機能だけに絞った無料版！

他にも色々ありますが、最終的には
[teleport](https://github.com/johndbritton/teleport)
というアプリにしました！(無料！）

##### メリット

- 別のMacの操作や、アプリによってはMacだけではなくUbuntu、Windowsなどの別OSでもリモート操作できる！

##### デメリット

- 有料なものもある
- クライアント、サーバとしてアプリを起動しておかなければならない
- たま〜に切断されて操作できなくなる
    - ので、回復用にMacMiniのキーボード・マウスが必要になるケースが・・・
- Synergy, Barrierはトラックパッドのジェスチャ（3本指スワイプ、スワイプ）が効かない


### 結局全部ためした。（問題点など）

最初は 画面共有 + ユニバーサルコントロールで行こうと思ったんですけどね

**画面共有 + ユニバーサルコントロールはどちらかしか無理**という現実がありました:joy:


#### Duet + ユニバーサルコントロール,Barrier,teleport

しかしながら、これはこれで、 **トラックパッドの2本、3本指が効かないという欠点** が
これは、Barrier,teleportに変えてもだめでした

そこで思い切ってLuna Display を購入

#### Luna Display + ユニバーサルコントロール,Barrier,teleport

こちらもトラックパッドの問題があり、Barrier, teleportも試しましたが **同様でした**

どちらも遅延はなかったし安定はしてたんですけどね

マルチタップ操作に関してはBarrier自体が対応していないよう


### 最終的に

トラックパッドの2本、3本指ピンチやスワイプのジェスチャが使えないのは相当痛いので、

画面共有 + teleport　という組み合わせにしました！
これであれば、ジェスチャは問題なく動作します！

teleportでMacMiniを操作して、MacBookAirに画面共有して、画面共有も含めてteleportで操作する、という形です

若干の遅延はあれど、そこまで気にならず快適に動作するのと、Airに切り替えるのも右上から画面共有オフにするだけなので、簡単！:ok_hand:



ただ遅延が気になるとか、そもそもトラックパッド使ってない OR Mac純正じゃない、
OS跨いで操作したい！とかがあるなら
Duet (Luna Display)＋Synergyなどもいいのかなと思います！



良きMacMini Lifeに:relaxed:


### 今後の課題


実はWindowsもUbuntuも横にいるので、それらの操作が同じMacBookAirでできたら快適そうだなぁと考えているのですが、
teleportはMacのみ対応のため、できません！

そうすると、Synergyを入れてMac以外の操作をできるようにしつつ、teleport併用するかとか考えていますが、
操作が思い切り競合するので、問題がでそうで一旦見送っています:frowning2:

旅はまだ終わらない:airplane: