synergyでキーボード、マウスを共用 -

目次

概要

 synergyは一組のキーボードとマウスを複数のPCで共用するためのソフトウェアです。似たような用途に使用されるソフトウェアとしてVNCが在りますが、synergyでは複数のディスプレイを接続したPC間でキーボードとマウス入力だけを切り替える働きをします。

 操作はシンプルで、マウスカーソルを画面外に移動すると別のPCにカーソルが現れ、カーソルのあるPCを操作することが出来ます。また、クロスプラットフォームでの使用が可能です。ここではLinuxとWindows間での使用例を記します。

ダウンロード

日本語環境対応パッチをあてる

diff -ur synergy-1.3.1.original/lib/platform/CMSWindowsKeyState.cpp synergy-1.3.1/lib/platform/CMSWindowsKeyState.cpp
--- synergy-1.3.1.original/lib/platform/CMSWindowsKeyState.cpp	2006-04-11 17:56:19.000000000 +0900
+++ synergy-1.3.1/lib/platform/CMSWindowsKeyState.cpp	2006-04-11 20:31:35.000000000 +0900
@@ -277,9 +277,9 @@
 	/* 0x0ef */ { kKeyNone },		// OEM specific
 	/* 0x0f0 */ { kKeyNone },		// OEM specific
 	/* 0x0f1 */ { kKeyNone },		// OEM specific
-	/* 0x0f2 */ { kKeyNone },		// OEM specific
-	/* 0x0f3 */ { kKeyNone },		// OEM specific
-	/* 0x0f4 */ { kKeyNone },		// OEM specific
+	/* 0x0f2 */ { kKeyOEMCopy },	// VK_OEM_COPY
+	/* 0x0f3 */ { kKeyZenkaku },	// VK_OEM_AUTO
+	/* 0x0f4 */ { kKeyZenkaku },	// VK_OEM_ENLW
 	/* 0x0f5 */ { kKeyNone },		// OEM specific
 	/* 0x0f6 */ { kKeyNone },		// VK_ATTN			
 	/* 0x0f7 */ { kKeyNone },		// VK_CRSEL			
@@ -534,9 +534,9 @@
 	/* 0x1ef */ { kKeyNone },		// OEM specific
 	/* 0x1f0 */ { kKeyNone },		// OEM specific
 	/* 0x1f1 */ { kKeyNone },		// OEM specific
-	/* 0x1f2 */ { kKeyNone },		// OEM specific
-	/* 0x1f3 */ { kKeyNone },		// OEM specific
-	/* 0x1f4 */ { kKeyNone },		// OEM specific
+	/* 0x1f2 */ { kKeyNone },		// VK_OEM_COPY
+	/* 0x1f3 */ { kKeyNone },		// VK_OEM_AUTO
+	/* 0x1f4 */ { kKeyNone },		// VK_OEM_ENLW
 	/* 0x1f5 */ { kKeyNone },		// OEM specific
 	/* 0x1f6 */ { kKeyNone },		// VK_ATTN			
 	/* 0x1f7 */ { kKeyNone },		// VK_CRSEL			
diff -ur synergy-1.3.1.original/lib/synergy/KeyTypes.h synergy-1.3.1/lib/synergy/KeyTypes.h
--- synergy-1.3.1.original/lib/synergy/KeyTypes.h	2006-04-11 17:56:21.000000000 +0900
+++ synergy-1.3.1/lib/synergy/KeyTypes.h	2006-04-11 20:37:23.000000000 +0900
@@ -106,6 +106,7 @@
 static const KeyID		kKeyHenkan		= 0xEF23;	/* Start/Stop Conversion */
 static const KeyID		kKeyZenkaku		= 0xEF2A;	/* Zenkaku/Hankaku */
 static const KeyID		kKeyDelete		= 0xEFFF;	/* Delete, rubout */
+static const KeyID		kKeyOEMCopy		= 0xEF27;	/* OEMCopy(Kana in Japanese keyboard) */
 
 // cursor control
 static const KeyID		kKeyHome		= 0xEF50;

Linux環境でのビルド

Windows環境でのビルド

Linuxをサーバとして起動する

section: screens     # synergyの管理するディスプレイを全て列挙します。
        localhost.localdomain:
        client.localdomain:
end

section: aliases     # 別名を指定します。(IP-Address指定にも応用できます。)
        localhost.localdomain:
                < IP-Address >
        client.localdomain:
                < IP-Address >
end

section: links       # スクリーン間の関係を記述します。
        localhost.localdomain:
                right = client.localdomain
        client.localdomain:
                left = localhost.localdomain
end

Linuxをクライアントとして起動する

Windowsをサーバとして起動する

Windowsをクライアントとして起動する

Linuxでsynergyを自動起動に設定する

/usr/bin/killall synergys
sleep 1
/usr/bin/synergys --daemon --config /etc/synergy.conf
/usr/bin/killall synergys
sleep 1
/usr/bin/synergys --daemon --config /etc/synergy.conf

Windowsでsynergyを自動起動に設定する

Tips