Synergy

提供: ArchWiki
移動先: 案内検索

Synergy は複数のマシンで (たとえオペレーティングシステムが異なっていても) 簡単に一つのマウスとキーボードを共有できるようにします。特殊なハードウェアは必要ありません。デスクに複数のコンピュータが置いてあって、それぞれ個別のモニターを使っているようなユーザーを想定しています。

マウスを画面の端まで移動するだけでマウスやキーボードを転送することができます。また、Synergy は全てのシステムのクリップボードを一つにまとめて、システム間でカットアンドペーストできるようにします。さらに、スクリーンセーバーまで同期して同時に開始・停止するようにして、画面がロックされている場合、どれか一つの画面のロックを解除すれば、全ての画面のロックが解除されます。

インストール

Arch Linux

synergy パッケージでインストールできます。

Windows と OS X

公式ウェブサイトから最新のインストーラーを ダウンロード して実行してください。

事前設定

まずマシンの IP アドレスとホストネームを確認してください。それぞれに適切な hosts ファイルがあることを確認してください。

/etc/hosts
10.10.66.1        archserver.localdomain       archserver
10.10.66.100      archleft.localdomain         archleft
10.10.66.105      archright.localdomain        archright
ノート: クライアントからサーバーに接続できることを確認してください。

Arch Linux

暗号化の有効化

Synergy バージョン 1.7 から独自の通信暗号から SSL に置き換わっています。

SSL プラグインをインストールするには、plugins ディレクトリ (デフォルトでは ~/.synergy/plugins) にコピーまたはシンボリックリンクを作成してください:

$ mkdir -p ~/.synergy/plugins
$ ln -s /usr/lib/synergy/libns.so ~/.synergy/plugins/libns.so

サーバーの設定

synergy では、共有したいキーボードとマウスが接続されたコンピュータをサーバーと呼びます。利用可能なセクションとオプションの詳しい説明は Synergy Configuration File Format を見て下さい。

Arch Linux

Arch Linux の設定ファイルは /etc/synergy.conf です。このファイルが存在しないときは、/etc/synergy.conf.example を使って作成してください。基本的な設定をするのに十分な量のコメントが記載されています。さらに詳しい情報が必要なときは、上でリンクしているガイドを見て下さい。

ヒント:
  • AURquicksynergyAUR には設定を楽にする GUI が入っています。
  • サーバーのポートがブロックされていないことを確認してください。デフォルトでは synergy はポート 24800 を使います。

何らかの問題があってバックグラウンドでサーバーを実行したいときは、以下のコマンドを実行します:

# synergys -f

synergy のサーバープロセスはユーザーの X セッションにアタッチする必要があります。つまり、ユーザーで実行する必要があります。適当なユーザーで synergys@mary有効化してください ('mary' は使用するユーザー名に置き換えてください)。

ヒント: synergys@mary.socket を有効化することでクライアントが接続しようとしたときにサーバーを起動することができます。起動時にサービスが X サーバーに接続できないような場合に有用です。

暗号化を使う

サーバーで使用する証明書と指紋を生成するには:

$ mkdir -p ~/.synergy/SSL/Fingerprints
$ openssl req -x509 -nodes -days 365 -subj /CN=Synergy -newkey rsa:1024 -keyout ~/.synergy/SSL/Synergy.pem -out ~/.synergy/SSL/Synergy.pem
$ openssl x509 -fingerprint -sha1 -noout -in ~/.synergy/SSL/Synergy.pem > ~/.synergy/SSL/Fingerprints/Local.txt
$ sed -e "s/.*=//" -i ~/.synergy/SSL/Fingerprints/Local.txt

SSL プラグインを有効化するには、--enable-crypto オプションを追加します。

  • コマンドラインから起動する場合:
# synergys --enable-crypto
  • systemd で起動する場合:
 /usr/lib/systemd/system/synergys@.service
[Unit]
Description=Synergy Server Daemon
After=network.target

[Service]
User=%i
ExecStart=/usr/bin/synergys --no-daemon --config /etc/synergy.conf --enable-crypto
Restart=on-failure

[Install]
WantedBy=multi-user.target

ユーザーでサービスを起動するには:

# systemctl start synergys@mary

Windows

  1. Synergy プログラムを開いて下さい
  2. Server (share this computer's mouse and keyboard) オプションを選択します
  3. Configure interactively を選択
  4. Configure Server... ボタンをクリック
  5. ウィンドウが開いて、使っているコンピュータやディスプレイの数に合わせて画面を追加することができます: 右上の画面アイコンを画面エリアにドラッグして、ダブルクリックすることで設定を編集できます
  6. 設定が完了したら OK を閉じて画面を終了し、Start をクリックしてサーバーを起動します

Windows では、設定はデフォルトで synergy.sgc ファイルに保存されますが、設定ファイルの名前や保存場所は好きに変えられます。

Windows が起動するたびに毎回 Synergy サーバーを起動したい場合、プログラムを管理者として起動する必要があります。そして Edit -> Services から Server セクションの Install を選択してください。次の起動時から Synergy は自動的に起動するようになりますが、トレイアイコンは自動では表示されません (少なくとも Windows 7 でバージョン 1.4.2 beta を使用している場合)。サービスをアンインストールするには、インストール時と同じ操作をします。ただし Uninstall を選択するようにしてください。

コマンドラインからサーバーを起動したい場合、以下が Windows でのコマンドです。.bat ファイルに記述したり cmd.exe から実行できます:

C:\Program Files\Synergy+\bin\synergys.exe  -f --debug ERROR --name left --log c:\windows\synergy.log -c C:/windows/synergy.sgc --address 10.66.66.2:24800

OS X

OS X の設定は Unix での設定とほぼ同じです: 詳しくは 公式ドキュメント を確認してください。

設定サンプル

3つのコンピュータがある基本的な設定例:

/etc/synergy.conf
section: screens
	server-fire:
	archright-fire:
	archleft-fire:
end

section: links
	archleft-fire:
		right = server-fire
	server-fire:
		right = archright-fire
		left = archleft-fire
	archright-fire:
		left = server-fire
end

Arch Linux のパッケージに付属している例:

/etc/synergy.conf
section: screens
        # three hosts named:  moe, larry, and curly
        moe:
        larry:
        curly:
end

section: links
        # larry is to the right of moe and curly is above moe
        moe:
                right = larry
                up    = curly

        # moe is to the left of larry and curly is above larry.
        # note that curly is above both moe and larry and moe
        # and larry have a symmetric connection (they're in
        # opposite directions of each other).
        larry:
                left  = moe
                up    = curly

        # larry is below curly.  if you move up from moe and then
        # down, you'll end up on larry.
        curly:
                down  = larry
end

section: aliases
        # curly is also known as shemp
        curly:
                shemp
end

細かくカスタマイズした例:

synergy.sgc
section: screens
	leftpc:
		halfDuplexCapsLock = false
		halfDuplexNumLock = false
		halfDuplexScrollLock = false
		xtestIsXineramaUnaware = false
		switchCorners = none +top-left +top-right +bottom-left +bottom-right 
		switchCornerSize = 0
	rightpc:
		halfDuplexCapsLock = false
		halfDuplexNumLock = false
		halfDuplexScrollLock = false
		xtestIsXineramaUnaware = false
		switchCorners = none +top-left +top-right +bottom-left +bottom-right 
		switchCornerSize = 0
end

section: aliases
leftpc:
10.66.66.2
rightpc:
10.66.66.1
end

section: links
	leftpc:
		right = rightpc
	rightpc:
		left = leftpc
end

section: options
	heartbeat = 1000
	relativeMouseMoves = false
	screenSaverSync = false
	win32KeepForeground = false
	switchCorners = none +top-left +top-right +bottom-left +bottom-right 
	switchCornerSize = 4
end

クライアントの設定

ノート: サーバーを既に正しく設定していることが前提です。クライアントの設定をする前にサーバーを設定するようにしてください。
ヒント: サーバーにはクライアントが含まれているため、ホストサーバーでクライアントの設定をする必要はありません。

Arch Linux

コンソールウィンドウで、以下を入力:

$ synergyc server-host-name

もしくは、フォアグラウンドで synergy を実行するには:

$ synergyc -f server-host-name

上記の server-host-name はサーバーのホストネームに置き換えてください。

暗号化を使う

暗号化機能を使うには、以下を入力:

$ synergyc --enable-crypto

自動起動

Synergy クライアントを自動で起動する方法は複数あります。他のアプリケーションの自動起動と同じです。

ノート: 以下の例にある、server-host-name は実際のサーバーのホストネームに置き換えるようにしてください。
~/.xinitrc
...

#replace server-host-name with the real name
synergyc server-host-name

もしくは以下の行を追加:

~/.xinitrc
XINIT_CMD='/usr/bin/synergyc -d FATAL -n galileo-fire 10.66.66.2:24800'
/usr/bin/pgrep -lxf "$XINIT_CMD" || ( ( $XINIT_CMD ) & )
synergyc server-host-name

例えば、kdm を使っているときは /usr/share/config/kdm/Xsetup を編集してください。

  • systemd で Synergy クライアントを起動するには、サービスファイル /etc/systemd/system/synergyc@.service と設定ファイル /etc/conf.d/synergyc.conf を作成します:
/etc/systemd/system/synergyc@.service
[Unit]
Description=Synergy Client Daemon
After=network.target

[Service]
EnvironmentFile=/etc/conf.d/synergyc.conf
ExecStart=/usr/bin/synergyc --no-daemon --debug ${DEBUGLEVEL:-INFO} ${SERVERALIAS}
User=%i

[Install]
WantedBy=multi-user.target
/etc/conf.d/synergyc.conf
DEBUGLEVEL=WARNING
SERVERALIAS=server-name

ユーザーでサービスを起動するには:

# systemctl start synergyc@mary

Synergy の自動起動については 公式のリファレンスページ にまとまっています。

Windows

インストール後、Synergy プログラムを開いて、Client (use another computer's keyboard and mouse) オプションを選択して、テキストボックスにサーバーコンピュータのホストネームを入力してから、Start をクリックするとクライアントが起動します。

ノート: トレイアイコンを使うことでクライアントを停止できます。

Windows が起動する度に Synergy クライアントが起動するようにしたい場合、管理者としてプログラムを起動して、Edit -> Services から Client セクションの Install を選択してください。

コマンドラインからクライアントを起動したい場合、以下が Windows のコマンドです。.bat ファイルに記述したり cmd.exe から実行することができます。設定ファイルとして C:\synergy.sgc を指定して、サービスのようにバックグラウンドで動作させます。

START /MIN /D"C:\Program Files\Synergy+\bin" synergys.exe -d ERROR -n m6300 -c C:\synergy.sgc -a 10.66.66.2:24800

OS X

synergyc フォルダにある synergyc プログラムを見つけてターミナルウィンドウにドラッグしてください: ターミナルにフルパスが入力されます。そこにサーバーのホストネームを入力すると、以下のようなコマンドになります:

/path/to/synergyc/synergyc server-host-name

そうしたら Enter を押して下さい。

既知の問題

Arch を Synergy のクライアントとして使用すると、サーバーがクライアントのモニターを立ち上げることができない場合があります。ACPI が有効になっている場合、SSH で以下のコマンドを実行することで解決できます (参照: Display Power Management Signaling#xset を使って DPMS とスクリーンセーバーの設定を変更する):

# xset dpms force on

トラブルシューティング

公式ドキュメントには FAQトラブルシューティング のページがあります。

キーボードの AltGr

AltGr に問題が起こる場合は /etc/synergys.conf の screen/client セクションに以下を追加してください:

altgr = alt

キーボードのリピート

(Linux ホストの) クライアントマシンでキーボードのリピートに問題が起こる場合は、コンソールに以下を入力してください:

# /usr/bin/xset r on

キーボードのマッピング

クライアントのウィンドウ (例: ターミナル) でサーバーのキーボードを使うときにキーボードのマッピングに問題が起こる場合は、synergyc を起動した後に X のキーマップを再設定すると直ることがあります。以下のコマンドでキーマップが現在の値に再設定されます:

# setxkbmap $(setxkbmap -query | grep "^layout:" | awk -F ": *" '{print $2}')

Gnome3 でカーソルが表示されない

Gnome 3 でマウスが認識されないと、デフォルトでタッチスクリーンモードになってカーソルが表示されなくなります。有効にするには次を実行:

# dconf write /org/gnome/settings-daemon/plugins/cursor/active false

init スクリプトや systemd ユニットに以下のように追加できます:

 ExecStartPost=dconf write /org/gnome/settings-daemon/plugins/cursor/active false

messages.log の中身が synergyc で埋められてしまう

上述のように synergyc を実行すると /var/log/messages.log ファイルが以下のようなメッセージで一杯になってしまいます:

 May 26 22:30:46 localhost Synergy 1.4.6: 2012-05-26T22:30:46 INFO: entering screen
         /build/src/synergy-1.4.6-Source/src/lib/synergy/CScreen.cpp,103
 May 26 22:30:47 localhost Synergy 1.4.6: 2012-05-26T22:30:47 INFO: leaving screen
         /build/src/synergy-1.4.6-Source/src/lib/synergy/CScreen.cpp,121

メッセージを出力しないようにするには -d WARNING オプションを付けて synergyc を実行してください。デバッグレベルオプションはレベルが WARNING 以上のメッセージだけを synergy からログに吐かせるようにします:

$ synergyc -d WARNING server-host-name

/etc/rc.d/synergyc ファイルを使っている場合、synergyc を呼び出している行を以下のように編集できます:

    [ -z "$PID" ] && /usr/bin/synergyc -d WARNING "$SERVERALIAS"

クライアントから "failed to verify server certificate fingerprint" と返ってくる

サーバーの ~/.synergy/SSL/Fingerprints/Local.txt の中身をクライアントの ~/.synergy/SSL/Fingerprints/TrustedServers.txt にコピーしてください。

参照