Synergyを用いたキーボード(およびマウス)の共有化

机の上で2基(あるいは3基以上)のコンピュータを運用しているユーザであれば、マシンごとにキーボードとマウスを使い分けるのに辟易しているのではないだろうか。1つのソリューションはKVM(キーボード、ビデオ、マウスの切り換え器)を購入することだろうが、可能な限り出費を抑えたい、あるいはマウス操作一発で2基以上のコンピュータを切り換えたいという要望があるのであれば、Synergyというソフトウェアの採用を検討すべきだろう。

Synergyの機能は1組のキーボードとマウスを使って複数のコンピュータを操作するというものだが、これらコンピュータを司るオペレーティングシステムとしては、Linux、Mac OS X、Windowsなど様々なものに対応している。またその他にコンピュータ間でのクリップボード共有機能も装備されており、たとえばLinux側で実行中のプログラムでコピーしたテキストを、Windows側のアプリケーションでペーストするという操作が可能だ。そしてSynergy最大の特長として、GNU General Public License(GPL)によってフリーでの使用が認められている点も挙げておかなければならない。

Synergyの導入法

まず最初に、使用するプラットフォーム用のソースコードかパッケージの形式でSynergyを入手する。バイナリは、Linux(RPM形式)、Mac OS X、Windows用のものが用意されている。次に、キーボードとマウスの共有を行うすべてのシステムにSynergyをインストールする。

DebianあるいはUbuntuのユーザであれば、Synergyのインストールはapt-get install synergyという構文で行える。ここで一言注意しておくが、Debian SargeおよびUbuntu Breezy用のパッケージは1.2シリーズをベースとしているのに対して、Debian EtchおよびUbuntu Dapper用のパッケージは1.3シリーズをベースとしている。そして1.2用と1.3用のプロトコル間に互換性はない。よってDapperとBreezyとでSynergyを使うような場合は、Synergy 1.3.1をソースからコンパイルする必要がある。

使用するオペレーティングシステム用のSynergyのインストールが完了したら、次にSynergy本体の設定を行う。設定ファイルの作成先は~/.synergy.conf、あるいは/etc/synergy.confとすることでシステム全体に適用させることができる。

synergy.confファイルは、下記のサンプルのように記述する。

# ホストの設定セクション
section: screens
      host1:
      host2:
          super = meta
end

# ホスト間の位置関係の設定セクション
section: links
      host1:
	    right = host2
      host2:
	    left  = host1
end

section: options
      switchDelay = 1000

Synergy以外の選択肢

複数のコンピュータ間でキーボードとマウスを共有するのはSynergyだけの専売特許ではなく、またSynergyの機能にも長所と短所が存在する。たとえばGUI環境で操作できないコンピュータを扱いたいのであれば、Synergyの使用は適していないので、ハードウェア的なKVMスイッチを購入すべきだろう。また開発者側の将来的な構想はともかく、現行のSynergyはモニタの共有を行えないので、こうしたハードウェアの共有によるコスト削減を考えているのであれば、その場合もKVMを使用すべきだ。

一方でKVMスイッチにも欠点があり、たとえば大部分のKVMスイッチはUSBあるいはPS/2ポートを使用するように作られている。つまり両者を混成して使用することはできないので、PC側がPS/2キーボードとマウスでMac側がUSBキーボードとマウスという組み合わせの場合は、お手上げになる可能性が非常に高い。またホットキーのコンビネーションでコンピュータ間の切り替えをするタイプの場合、画面の端にマウスポインタを移動するだけで隣接するモニタの画面に移動するという芸当はできない。さらに価格面でも、対応システム数が2から4基のものはそれほど高価ではないが、5基以上のシステムに対応したKVMスイッチとなるとかなりの出費を覚悟する必要がある。最後に付け加えておくと、私自身も実際に2つのコンピュータを併用しているが、この環境で1台のモニタを共有させようという気にはならない。というのも、テスト用システムとして使用しているマシンの状況を横目でにらみつつ、残り一方のマシンで原稿を入力するというのが私のスタイルであり、仮にKVMスイッチでモニタを共有させても、さほど有り難みがないというのが実状だからだ。

その他の選択肢としてはx2vncがあるが、こちらはSynergyよりも設定が若干簡単であるものの、パフォーマンス的には劣っており、システム間でのクリップボード共有も行えない。また3ないし4基以上のコンピュータでの使用を考えていた方には残念な話であるが、x2vncで扱えるコンピュータは2基までである。

一方でx2vncの長所はと言うと、VNCサーバの動作する任意のシステムで使えるようになっているので、VNCサーバさえ動作するものであれば、どのようなLinuxシステムでもx2vncを使用することができる。Synergyの場合は、Unix系OS、Windows、および最新版のMac OS Xに限定されている。

2つのXベースシステムで使うのであれば、x2xの使用を検討してもいいだろう。ただしx2xの場合も、扱えるコンピュータは2基までである。

最初のセクションには、Synergyで接続するすべてのホストを登録しておく。host2の下の行は、Superキー(通常はWinキー)が押された際にメタキーとしてクライアントに送信するためのオプション設定である。リマッピング可能なキーの一覧は、キーの名称のリストを参照して頂きたい。

次のセクションは、ホスト間の位置関係を設定する部分である。このサンプルの場合、マウスポインタがhost1側の画面右端にさしかかるとhost2側に移動し、逆にhost2側の画面の端に移動するとhost1側に戻ってくるようになっている。こうした位置関係のマッピングでは「up」および「down」も指定できる。なお、ホスト間の位置関係はすべて明示的に指定しておく必要があり、たとえば「host2はhost1の右側にある」とだけ設定しておいても、Synergyは「host1はhost2の左側にある」とまでは自動的に判定してくれない。

optionsのセクションは、その名の示すとおり省略可能である。私の場合はswitchDelayオプションを設定しているが、これはSynergyサーバ用の設定で、マウスポインタが画面の端に差し掛かった状況において、移動先のシステムにマウスやキーボードからの入力情報を伝達するまでに遅延時間を設けさせるための指定である。遅延時間はミリ秒単位で指定するが、私の経験からすると、最低でも1000以上の値を指定しておいた方がいいだろう。

SynergyのWebサイトには設定オプションについての解説およびマニュアルのページが用意されている。なお、設定が必要なのはサーバに用いるコンピュータだけであり、クライアント側のコンピュータでの設定は“不要”なので注意して頂きたい。

Synergyの使用法

Synergyサーバとして用いるホストへの設定ファイル登録が完了したら、実際にSynergyを使ってみよう。それにはまずsynergys -fという構文でサーバを起動させる。これはSynergyから表示されるイベントメッセージを確認するために、サーバをフォアグラウンド(-f)で実行させるための指定である。何らかのエラーメッセージが表示される可能性もあるので、(最低でも)最初の起動時はこのモードで実行させておくべきだろう。

次に他のマシンに移動し、synergyc -f ホスト名 という構文でSynergyクライアントを起動させる。この ホスト名 には、Synergyサーバのホスト名を指定する。

何もエラーメッセージが表示されなければ、実際にマウスポインタを画面の端に移動させて、隣接するシステムに移動できるかを確認しておく。移動先のシステムでも、Synergyサーバ経由でのキーボードおよびマウス操作によって通常どおりの制御ができるはずだ。

Synergyが正常に動作するかの確認が終了したら、-fオプションを指定せずにsynergysおよびsynergycを実行して、デーモンモードで動作させればよい。なおSynergyを自動的に起動させる方法は、Synergyのサイトにあるマニュアルに説明されている。

NewsForge.com 原文