Input Leap

提供: ArchWiki
Synergyから転送)
ナビゲーションに移動 検索に移動

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

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

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

Scroll Lock LED does not light

When using Scroll Lock to lock to a client (or to enter relative mouse move mode), you may run into an issue with your keyboard's Scroll Lock LED not lighting. This can be solved by binding the Scroll_Lock key to an empty modifier key.

First, find an empty modifier. In this case, mod3 is available:

 $ xmodmap
 xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):
 
 shift       Shift_L (0x32),  Shift_R (0x3e)
 lock        Caps_Lock (0x42)
 control     Control_L (0x25),  Control_R (0x69)
 mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
 mod2        Num_Lock (0x4d)
 mod3
 mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
 mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)
 

Then, add the new mapping.

 $ xmodmap -e 'add mod3 = Scroll_Lock'
 $ "echo "add mod3 = Scroll_Lock" >> ~/.Xmodmap

See Xmodmap#Activating the custom table to have ~/.Xmodmap loaded on login.

After making this change, test the LED and screen locking. If you find that you need to press Scroll Lock twice to lock screens, enable halfDuplexScrollLock on all screens in section: screens.

Additional mouse buttons do not work in client

If you find that additional mouse buttons (i.e. Mouse4/Mouse5) do not translate to a client, try adding the following to section: options:

 mousebutton(6) = mousebutton(4)
 mousebutton(7) = mousebutton(5)

This will re-map the mouse keys to the proper number. If that does not fix the problem, remove the configuration, stop Synergy, and start it in the foreground with debug logging enabled:

 $ synergys -f -d DEBUG1

Then, move your cursor to the screen of the client with the issue. Click the non-functioning keys, and watch for log entries like this:

 [2017-09-30T14:56:45] DEBUG1: onMouseDown id=6
 ...
 [2017-09-30T14:56:46] DEBUG1: onMouseUp id=6

The id=... part will have the right number to use in mousebutton(...)

mouse fixed in certain games

In some applications (like Overwatch or other games) the cursor gets trapped in the middle of the screen.

According to https://github.com/symless/synergy-core/issues/2631 this is an issue that is known.

Just set relative mouse movement in your settings and make sure to lock the screen.

参照