こげついてます。

わすれっぽい人生のために

ひさびさに Synergy の設定をした。

最近使わなくなった Mac mini をなんかに使おうと思い、でもキーボード・マウスを増やしたくないので SynergyWindows PC から使うことにしました。ついでに MacBook も家にいるときは Windows PC から使えるようにしようとして大ハマリ。以下設定等です。

環境

機種 OS 備考
Windows PC(自作機) Windows XP MCE Synergy サーバになります。こいつにつないだキーボードとマウスで Mac 2台も操作したい。
MacBook Leopard Synergy クライアント(1)。もちろんキーボードとかはあるけど向きなおるのめんどい。
Mac mini G4 Tiger Synergy クライアント(2)。キーボードとかは繋いでない。

Synergy サーバの設定

インストール

まずはファイルを取ってきます。Windows 版だけインストーラGUI がついてて待遇がいいです。

現在の最新リリース版は 1.3.1 なのですが、2006 年から更新されてませんね。


取ってきたらインストーラを起動します。ウィザードに従っていけば大丈夫。


ショートカットアイコンの作成先の選択


ライセンスに同意しますか?


インストール先の選択


ファイルがコピーされて完了。インストールはこんだけ。

設定

インストールが完了したら、早速起動して設定してしまいます。


起動するとこの画面になります。サーバとして動作するように設定します。


"Share this computer's keyboard and mouse [server]" のラジオボタンをクリックします。


"Configure" ボタンを押して、接続する PC の設定をします。

この画像はすでに設定済みのものなので "Screens:" と "Links:" にいろいろ入ってますが、設定前は空っぽです。


まず、"Screens:" の下の "+" ボタンをクリックします。

"Screen Name:" に、まずサーバとなるこの PC の名前を入れましょう。
Windows の場合、Synergy で使われる PC 名は "システムのプロパティ" の "コンピュータ名" の "フル コンピュータ名" です。
わからなければ、Synergy の元ウィンドウに戻って "Info" ボタンを押すと出るダイアログボックスの "Hostname" を書きましょう。
ここでは server1 と仮定します。
完了したら "OK" をクリック。


次にクライアントを追加します。
クライアントが MacLinux の場合、Screen Name は通常 hostname を通知します。しかし場合によっては localhost だったり、ドメイン名があったりなかったりと安定しません。幸い、Synergy クライアントを起動するときに通知するホスト名を指定することができるので、それで回避します。
というわけで、なにか適当に名前を決めて入れてしまいましょう。ここでは client1 と client2 の2台を仮定します。


"Screens:" に使用するサーバ・クライアントをすべて登録したら、次に "Links:" に「どの PC がどの PC のどっち側か」を設定します。
往きと帰りで別々に設定が必要ですので注意してください。


さっきの "Screens & Links" っていう画像をもう一度見てください。
"Links:" の下の "[0] to [100] % of 〜" というところで関係を設定し、"+" ボタンで1つ1つ追加する流れです。


例えば、server1 の画面の右に client1 の画面を持ってきたい場合、
[0] to [100] % of the [right] of [server1] goes to [0] to [100] % of [client1]
[0] to [100] % of the [left] of [client1] goes to [0] to [100] % of [server1]
を設定します。上の行だけだと、Mac 側に行ったはいいけど帰ってこれなくなるので注意です。


ちなみに、[0] to [100] % というのは画面の辺の長さを表わしていて、[0] to [50] % to [right] などとやると右側の辺の上から半分までが右側の PC に対応するようになります。
なので、上半分と下半分でちがう PC に抜けられるようにも出来たりします。
うちの場合は、サーバになってる PC がデュアルモニタで、左側に横 1920 ドット、右側に横 1280 ドットのモニタを置いているので、それに対応するように 60% の位置で分けています。テトリスの "z" みたいな形のブロックの様な配置なのですw


client2 についても同様に設定をして、"OK" で設定完了。
ここまで出来たら "Test" ボタンを押して、とりあえず起動してしまいます。

こんな感じになると思います。すでにうちはクライアントが動いているので接続されてしまっていますが、クライアントが設定されていない時点では一番下のウィンドウは3行目までで止まるはずです。


Synergy クライアントの設定

インストール

しばらくは LeopardTiger も共通の作業です。
まずは、Mac 版の Synergy をダウンロードします。Windows 版と同じところから、OS X 版をダウンロード。
こっからターミナルでの作業です。
まずは適当に解凍。ここでは、/usr/local/bin/synergy に置くことにしましょう。

% mkdir -p /usr/local/bin (無ければ)
% tar xvzf path/to/download/synergy-1.3.1-1.OSX.tar.gz
% sudo cp synergy-1.3.1/synergyc /usr/local/bin/
設定、というか起動

実は Synergy クライアントそのものは特に設定はいりません。次の様に起動すれば、もうサーバ側から操作できるはずです。

% /usr/local/bin/synergyc -n client1 -f xxx.xxx.xxx.xxx (サーバの IP アドレス)

-n はサーバに通知するホスト名の指定。さきほどサーバに設定したものを使います。
-f は、デーモンとして起動しないようにするオプション。無いといきなりバックグラウンドに行ってしまうので、テストするときは付けると便利です。
なお、後述しますが、Leopard では -f を付けないと正しく起動しないので、必須になります。


ちゃんと接続されたら、サーバ側には "NOTE: client "client1" has connected"、クライアント側には "NOTE: connected to server" と表示されるはずです。
試しに、サーバ側のマウスポインタを、画面の設定した側の辺にぶつけてみてください。通り抜けてクライアント側に行くはずです。


同じ様に他のクライアントでも起動してみて、どこへもすいすい行けることを確認してください。なんか楽しいですねー。


これで、とりあえず Synergy の接続の設定は完了です。
次に、マシンの起動時に自動的に Synergy が起動するように設定します。

Synergy自動起動

サーバの自動起動

WindowsSynergy サーバを自動起動するのは簡単です。
Synergy のメインウィンドウの "Options" - "AutoStart..." を押します。

自分がログオンしたときに Synergy を起動したいときは "When You Log In" の "Install" を、システム起動時に Synergy も起動したいときは "When Computer Starts" の "Install" を押します。これだけ。

クライアントの自動起動

Mac でのクライアントの自動起動ですが、これがかなりめんどくさい。しかも TigerLeopard で違います。


Leopard の場合>
plist ファイルを作って、~/Library/LaunchAgents/ から起動するという手法をとります。
他に上手くいく方法がわかりませんでした。
なお、この方法は以下の記事を参考にしました。ありがとうございます。
Mac OS X(Leopard)でlaunchdを使ってsynergycを自動で起動させる - fyamaの日記


まずは Property List Editor を起動します。Xcode が入っていれば /Developer/Applications/Utilities/ にあります。


で、 Property List Editor が使える方は次の様に設定してください。アドレスとかはうちの環境になってるので読みかえてください。


Xcode をインストールしてなくて Property List Editor が無かったら・・・下に plist ファイルのソースを示しますので、これをコピペしてアドレスとか手直ししたら動くんじゃないかな(未確認)。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">


	Label
	synergyc
	ProgramArguments
	
		/usr/local/bin/synergyc
		-n
		client1
		-f
		xxx.xxx.xxx.xxx
	
	Disabled
	
	RunAtLoad
	


xxx.xxx.xxx.xxx は Synergy サーバの IP アドレスです。


どちらの方法でも、synergyc.plist などという名前で保存して、~/Library/LaunchAgents/ に置きます。
これで、ログインしたときに自動的に裏で動いて(画面には何も出ません)サーバに接続するはずです。


Tiger の場合>
Tiger の場合も Leopard と同じ方法で動きそうですが、別の例として Automator を使う方法を書いておきます。
ただし、この方法は Leopard では上手くいきませんでしたので Tiger 限定だと思ってください。


まずは Automator を起動します。


ライブラリの「アプリケーション」>「Automater」を選択し、アクションの「シェルスクリプトを実行」を右側の「ワークフローを作成するには、ここにアクションをドラッグまたは追加してください。」と書かれた枠の中にドラッグ&ドロップします。


シェルを「/bin/sh」にして、下の枠の中に以下のスクリプトを書き入れます。

export SYNERGYSV=xxx.xxx.xxx.xxx
export SYNERGYC=/usr/local/bin/synergyc

if [ -x $SYNERGYC ]
then
        $SYNERGYC -n client2 $SYNERGYSV &
fi


これを保存します。保存の画面にフォーマットを指定する項目があるので、「アプリケーション」に変更(デフォルトは「ワークフロー」)し、適当な名前をつけて適当な場所へ保存してください。


出来上がったら、試しに今作ったアプリケーションを実行してみて、サーバに接続されるか試してみましょう。
ちゃんと繋がったら、これをシステム環境設定の「アカウント」の「ログイン項目」に追加して設定完了です。