Share the mouse between Win11 and Linux

etc

Windows と Linux 間のマウス・キーボード共有

Windows と Linux のPCが各々1台ありますが、マウスとキーボードも各々のPCに接続しています。これは限られた机の空きスペースでは収まり切れませんでした。異なるOSでキーボードやマウスを共有するソリューションを探したところ Synergy – Share one mouse & keyboard across computers (symless.com) という方法があったのですが、これは有料ソリューションでした。

オープンソース(無料)のものを探したところ GitHub – debauchee/barrier: Open-source KVM software を見つけました。このソースは Synergy から fork したもののようですが、導入の決め手は無料だったのでこのパッケージを導入することにしました。

この記事はその導入方法の手順を記載しています。

barrier 導入前の注意事項

barrier を導入する際の注意事項です。このことに気がつくまで時間がかかりました。

モニターの解像度を変更せず、その倍率を150%や200%などに変更する設定(即ち、表示対象を大きくする代わりに表示領域が小さくなる)があります。barrier はこの設定に対応していないようで、マウスが他PCへ移動すると、マウスポインタが見えなくなる現象が発生します。

barrier 導入前のWindows PCは 150% 設定だったのですが、導入後は仕方なく 100% 設定で使用しています。

サーバとクライアントの分担を決めておく

このソリューションには、サーバ(キーボードとマウスを使用する側のPC)とクライアント(キーボードとマウスは使用しないほうのPC)で分担されます。このソリューションを導入する前に、あらかじめ決めておいたほうが無駄な作業を行わずに済みます。

私の以下の設定(分担)としました。

  • Server (マウスとキーボードを使用する PC)- Windows PC
  • Client (マウスとキーボードは使用しない) – Linux (Ubuntu)

この理由は Windows PC が(比較的新しいPCなので)マウスとキーボードは bluetooth(無線)を使えるからです。

Ubuntu への barrier 導入

apt でもインストールできるのですが、ソースをビルドすることにしました。この理由は問題が起きたときにデバッグログとソースの突合せができるからです。

$ sudo apt-get install cmake curl libcurl-dev 
$ sudo apt-get install libavahi-compat-libdnssd-dev
$ sudo apt-get install libxtst-dev
$ sudo apt-get install qtbase5-dev qtdeclarative5-dev 
$ sudo apt-get install libssl-dev
$ git clone https://github.com/debauchee/barrier.git
$ cd barrier
$ ./clean_build.sh
$ cd build
$ sudo make install

ソースを github から git clone する前に barrier のビルドに必要なパッケージをインストールしておきます。もしかして、ほかのパッケージも必要になるかもしれません。clean_build.sh を実行してエラーが発生したら、その都度エラー内容に応じてパッケージをインストールしていきます。

次から barrier をクライアントとして設定しますが、以下の内容となりました。

  • Client 側として動作させる
  • 自PC (Ubuntu) の Screen Name を設定する
  • Server IP を設定する (Auto config は試していません)
  • SSL を無効化する
  • ポート番号は 24800 を確認する

この設定を確認したら、まだ START しないでサーバ側を設定します。

Windows への barrier 導入

Windows への barrier の導入はパッケージ版を使用しました。ソースコードのビルドは Visual Studio 2019 (有償版)が必要なのですが、持っていないためです。
Windows パッケージ版 barrier の2024年8月12日時点での最終バージョンは 2.4.0 となりますが、そちらをインストールしました。

barrier サーバ側の設定は以下となります。

  • Server 側として動作させる
  • 自PC(Windows)の Screen Name を設定する
  • SSL を無効化する
  • レイアウトを設定する

レイアウトに関しては、WindowsとUbuntuのモニターをどのような配置するかです。通常のデュアルモニターの設定と同じ意味で、設定画面を見るとする理解できると思います。実際の配置として、物理的なモニターの配置に合わせたレイアウトにしました。(横方向にモニターの接点があるように配置しました)

この記事のアイキャッチャーにレイアウトを掲載しています。

barrier を Start する

Windows の barrier 画面からサーバ側の Start ボタンを押します。そうすると、Windows のサービスプログラムが動作します。その次に Ubuntu の barrier 画面からクライアント側の Start ボタンを押します。

接続が成功すると Windows のキーボードとマウスが Windows と Ubuntu で共有できるようになります。