ubunutu14.04 + Windows8.1 でSynergyを問題なく動かす


別PCにインストールされたWindowsとLinuxを一つのキーボードやマウスで自由に行き来できるソフトの定番として、Synergyというものがあります。

昔のバージョンでは無料だったのですが、ここ1年の間に有料化してしまっており、無料で公開されていた最終バージョン(1.4.18)を使うと次のような辛みに直面します。

  • Windowsでウィンドウをアクティブにしようとしても前面に出てこない時がある
  • Windowsをサーバにしているとき、UbuntuにShiftキーが送られていないのでShift+な操作ができない(大文字が打てなかったりかなり不便)

幸いにして、ソースは公開されていますし、Own riskで自分でコンパイルして使う分には無料なので、これをなんとかしようという話です。
(もともと有料化したのは、サポートが割に合わないとか、開発者が募金募っても全然こなくてがっかりしたとかそういう理由みたいですし。。。)

ちなみに、私の場合はこんな感じです。
Synergyサーバ:Windows 8.1
クライアント: Ubuntu 14.04

ソースの場所とか

ソースはgithubにあります。
https://github.com/synergy/synergy/

実はコンパイルしなくても公式にNightly Builds版があったりします。
ブランチ単位などで各環境のものがアップされていますね。
https://synergy-project.org/nightly

どのソースを使うか、、、ですが、取り合えず自分が遭遇したバグを回避できればよいので
Changelogを調べました。で、やはり記述がありました。

Bug #4349 - Mouse click does not always bring window to front
Bug #4055 - Shift keys are not sent to clients (Win 8.1 server)

ここから、修正済みなバージョンは1.6.3以降ならよさそうです。

で、masterのCommitlogから「Merge branch 1.6.3-stable」の文字があり、このツリーを使えばよい感じになりそうなので、NightyBuild版から「synergy-master-be06c19-Source.tar.gz」を使うことにします。
(バージョンは1.7相当になります)

Windows 8.1へ導入

最初はビルドしようかなと思いましたが、だいぶめんどくさい感じがしたのでここはありがたくNighty build版をインストールしました。

なお、インストールしたのはこれです。
synergy-master-be06c19-Windows-x64.msi

あとはいつものように設定すればOKでした。

Ubuntu 14.04LTSへ導入

これもNighty build版にdebパッケージがあったのですが、ビルドしなおしたほうがよさそうな感じだったので、これはソースから自力ビルドします。

といっても難しくなく、公式のWiki http://synergy-project.org/wiki/Compiling をそのままやればOKでした。

sudo apt-get install cmake make g++ xorg-dev libqt4-dev libcurl4-openssl-dev libavahi-compat-libdnssd-dev

で必要パッケージをインストールしてから

./hm.sh conf -g1
./hm.sh build

で、ビルドしたディレクトリのbin/以下にsynergyが入ります。

あとはusr/binにコピーするなり好きにするなり、、ですが、

./hm.sh package

で、debパッケージが作れるので、作ってしまってからdpkgで新しくインストールすると、後々面倒がなくなりますね。