Synergyで LinuxとWindowsでキーボード・マウスを共有

Synergyクロスプラットフォームで利用できる、キーボード・マウスを共有するためのプログラムです。
キーボード・マウスを接続しているPCがサーバとなり、その他の操作される側のPCはクライアントになります。
たとえば、Linux側にキーボード・マウスを接続し、WindowsLinux側に接続しているキーボード・マウスで操作することができます。
切り替え方法は、Windowsのスクリーンの右側を越えると、Linuxのスクリーンに移動する・・・といった風になります。

あくまで、キーボード・マウスを共有するだけなので、画面の出力は共有できません。
デュアルディスプレイにするためのは、別のソフトが必要です。
Linuxであれば改造されたVNCを使えばできるようですが、試していません。

今回は、Linuxをサーバにして、Windowsを接続してみました。

本家:
http://synergy2.sourceforge.net/

参考:
http://wiki.nothing.sh/page/memo/Synergy
 - 日本語環境のためのパッチや、パッチ済みバイナリなどを配布されています

http://d.hatena.ne.jp/mariyie/20080222
 - Linux側をサーバにするときの設定

Linux側を Synergy のサーバにする

fedora 8 で試しています。
クライアント側はWindowsを想定した名前付けにしています。


インストール

 $ sudo yum install synergy


設定

 $ sudo vi /etc/synergy.conf
section: screens
  linux:
  windows:
end

section: links
  linux:
    left = windows
  windows:
    right = linux
end

section: aliases
  windows:
    xxx.xxx.xxx.xxx
  linux:
    localhost
end
  • section: screens 〜 のところで、サーバに接続するクライアントの名前を定義しています。
  • section: links 〜 のところですが、スクリーンごとに、スクリーンのとなりに、どのスクリーンがあるかを設定します。
 linux:
  left = windows  # ← これは、linux スクリーンの左隣はwindows スクリーンがある、という定義
  • section: aliases 〜 は、スクリーン名にaliasをつけることができます。自分は、Windows側をIPで書いてみたんですが、意味があるのかは不明です。


サーバ起動

 $ synergys

synergys -f とすれば、デーモン化せずに起動し、ログを見ることができます。
ちなみに、サーバ側のPCは、クライアントプログラムで接続する必要はありません。

クライアントの接続

 $ synergyc -n <スクリーン名前> <サーバのIP>

SynergyWindowsバイナリをインストールして、「client」とあるほうで、サーバのIPを入れます。
また、Options から、スクリーン名を変えることができますので、 上の設定例でいうと、「windows」に変更します。
あとは、「test」を押して接続テストをするか、「start」を押して共有を開始します。

問題

オリジナルのバイナリでは、日本語変換のキーなどが反応しなかったりするので、IMEの切り替えができません。
参考サイトのパッチの当てられたプログラムを利用されると改善するかもしれません。

また、5ボタンマウスには対応してないみたいですね。(これが痛い・・・)