前提
- キーボードとマウスを Synergy https://symless.com/synergy を使って共有する
- このときキーボードとマウスは macOS 側のものをつかう(macOSがサーバ、ubuntuがクライアントになる)
- ディスプレイは1台で、端子毎にマシンを接続し、表示は表示対象の端子を切り替えることでおこなう
このときにどんな問題があったか?
ディスプレイにはそれぞれ「ubuntuのインストールされたPC」と「蓋をとじたMacBook Pro」が接続されています。で、それぞれにSynergyをインストールして適切な設定をすることでキーボード・マウスの共有は簡単に出来ました。ただし、macOS側からubuntu側に操作をする対象を変更して、画面表示を切り替えるとSynergyの接続が切れてしまいます。で、よくよく考えてみたら、画面を切り替えたあとのMacBook Proはクラムシェルモードだったのが「ディスプレイを認識しなくなったのでスリープになってしまい接続が切れるということがわかりました。で、これの嫌らしいところは「切れたあとにトラックパッドを動かして瞬間起動させることでまた接続が復活する」ので問題がどこにあるのかよくわからないことです。
解決するには
結論としては「MacBook Proの蓋を閉じてもスリープしないようにすればいい」ということになります。で、そのなかで一番手軽なのは、、、
- Fermata https://github.com/iccir/Fermata を使う
というのが一番手軽でした。ただし公開されてないAPIを使っているという話なのでいつ使えなくなるのかはわかりませんし、そういうアプリなので自己責任で使うようにしましょう。とはいえカーネルエクステンションを入れるとかはない(どうようのアプリではそういうタイプのものもある)ので気楽なのは気楽っです。
で、これMacBook Proでなにか長時間のタスクを回してる、というときなどにも便利です。先二位も書いたように(すべてのモニターがそうかは別にして)モニターをスリープさせたことでMacBook Proが自動的にモニターを認識しなくなり、スリープする、などがどうもありそうで、というのもディープラーニングでモデル作成をしてるときに画面スリープ後に極端に処理が遅くなってる、みたいな例が手元でありました。そういうときにスリープしないようしておけば安心かな、、、と。まぁ蓋を開けてつかうとか、電源繋いでるときには画面をスリープしないようにしてスクリーンセーバーで対応する、など方法はありそうですが。とはいえ「絶対にスリープさせたくない」という状況はありそうなんでそういうときにつかってみるといいかもしれません。
とりあえず手元では無事MacBook Proでつかってるキーボードとトラックパッドをつかってubuntuのchromeでこの記事を書いています(途中3回くらいリターンがおされっぱになる現象に出会しましたがまぁ、このくらいはいいでしょう)。
キータッチが変わらないって最高です。。。