Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

[Synergy] 여러 컴퓨터에서 키보드, 마우스 공유

이런 훌륭한 프로그램이 있군요. ^^

[Synergy] 여러 컴퓨터에서 키보드, 마우스 공유
; http://blog.powerumc.kr/475

위의 글에서 언급한 것처럼 현재 $4.99의 유료로 전환된 상태입니다.

다운로드 링크
; http://synergy-project.org/download/?list

단지,프로그래머라면 여전히 무료로 사용할 수 있는 방법이 있는데 SVN에 모든 소스 코드를 공개하고 있기 때문입니다.

Source Code 
; http://synergy-project.org/wiki/Source_Code

따라서 다음의 명령을 통해 로컬에 모든 소스 코드를 다운로드 받을 수 있습니다.

svn checkout http://svn.synergy-project.org/trunk synergy

빌드 방법은 아래의 사이트에 자세하게 있고,

Compiling 
; http://synergy-project.org/wiki/Compiling

여기서는 윈도우 버전만 빌드해 볼텐데요. 빌드 스크립트가 파이썬으로 되어 있으므로 우선 파이썬을 설치해야 합니다.

ActivePython
; http://www.activestate.com/activepython

그리고 cmake도 필요하니 다운로드 받고,

CMake - Latest Release (3.0.2)
; http://www.cmake.org/cmake/resources/software.html

"Qt SDK"에 포함된 qmake.exe도 필요하니 다운로드 받습니다.

qt-sdk-win-opensource-2010.02.exe (약 280MB, 설치하면 1.4GB)
; http://synergy-foss.org/mirror/qt-sdk-win-opensource-2010.02.exe

이제 PATH 환경 변수를 점검해야 하는데요. 위에서 설치한 3가지 도구에서 아래의 exe 파일들이 실행 가능하도록 PATH 환경 변수에 있음을 확인해야 합니다.

  • Pyhton의 python.exe
  • CMake의 bin\cmake.exe
  • Qt의 qt\bin\qmake.exe

즉, cmd.exe를 실행해서 python.exe, cmake.exe, qmake.exe가 모두 실행되는 상태여야 합니다.

아쉽게도 아직 끝이 아닌데, 윈도우 8의 경우 qmake.exe가 호환성 이슈로 인해 실행이 안되므로 (오류 발생 - Qt: Untested Windows version 6.2 detected!) 탐색기에서 qmake.exe의 속성창을 열어 "Compatibility" 탭의 호환 모드를 "Windows XP (Service Pack 3)"으로 맞추고 cmd.exe를 관리자 권한으로 실행시킨 다음 실행 중인 모든 Visual Studio를 종료하고, 다음의 명령을 차례로 실행시킵니다.

hm conf -g1
hm build

그럼, \synergy\build 폴더에 synergy.sln 파일이 생성되는데요. 이 파일을 Visual Studio 2010에서 로드해 Release 모드로 빌드하면 \synergy\bin\Release 폴더에 실행 파일이 생성됩니다. 그런데, 애석하게도 이렇게 빌드한 버전에서는 "[Synergy] 여러 컴퓨터에서 키보드, 마우스 공유" 글에 나온 UI를 가진 프로그램이 없고 콘솔 프로그램 형식만 있습니다.

어쨌든, 이렇게 빌드된 콘솔 프로그램으로 테스트를 해볼텐데, 각각 THESERVER, THECLIENT 라는 컴퓨터 이름을 가진 2대의 윈도우 PC에서 진행해 봤습니다.

서버는 THESERVER PC가 되고 여기서는 \synergy\bin\Release\synergys.exe 프로그램을 실행할 텐데, 이 때 옵션으로 conf 파일을 지정해야 합니다. 형식은 "How to configure Synergy in six steps" 글에 나온 것을 응용해 제 상황에 맞게 다음과 같이 구성했습니다.

section: screens
THESERVER:
THECLIENT:
end

section: aliases
THECLIENT:
192.168.0.95
end

section: links
THESERVER:
left = THECLIENT
THECLIENT:
right = THESERVER
end

section: options
screenSaverSync = false
end 

위의 설정은, THESERVER와 THECLIENT PC가 있고 이 때 서버 측에서 허용할 PC의 IP 주소는 192.168.0.95가 됩니다. 아울러 THESEREVR의 모니터에서 좌측으로 마우스를 이동하면 THECLIENT 화면으로 넘어가고 그 반대도 동작합니다.

이렇게 conf 파일이 마련되었으면 다음과 같이 해당 conf 파일의 경로와 함께 서버 프로그램을 실행해 줍니다.

c:\...\Release>synergys --config .\synergy.conf
INFO: Synergy 1.6.0 Server on Microsoft Windows 6.2 x86 (WOW64)
NOTE: started server, waiting for clients

클라이언트가 될 PC에는 \synergy\bin\Release\synergyc.exe 파일을 복사한 후 서버의 IP 주소를 입력해 실행해 줍니다.

C:\Temp>synergyc 192.168.0.53
INFO: Synergy 1.6.0 Client on Microsoft Windows 6.2 x86
NOTE: started client
NOTE: connecting to '192.168.0.53': 192.168.0.53:24800
NOTE: connected to server

오~~~ 정말 마우스를 왼쪽 모니터 영역 밖으로 끌어가니 클라이언트 쪽 화면의 마우스가 움직입니다. ^^ 클립보드에 복사한 내용도 잘 전달되는데, 아쉬운 것은 윈도우 8.1을 지원하지 못하는 것인지 알 수 없지만 클라이언트 측으로 마우스가 넘어갔을 때 키보드 입력이 'ALT'키가 눌린 상태로 전달이 되는 문제가 있습니다. 그래서 텍스트 입력은 안되고 메뉴 선택이 되는 동작이 이뤄집니다.

그 점을 제외하고는 훌륭하게 잘 동작합니다. ^^

참고로, 예전 버전의 윈도우 설치 버전을 다음과 같이 sourceforge에서도 구할 수 있다는 점.

Download SynergyInstaller-1.3.1.exe (923.6 kB) 
; http://sourceforge.net/projects/synergy2/files/Binaries/1.3.1/

(소스코드로부터 빌드된 바이너리는 1.6.0 버전입니다.)




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 9/20/2014]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 151  152  153  [154]  155  156  157  158  159  160  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1202정성태12/21/201125978오류 유형: 144. The database '...' cannot be opened because it is version 661.
1201정성태12/14/201141050디버깅 기술: 47. .NET Reflector를 이용한 "소스 코드가 없는" 어셈블리 디버깅 [4]
1200정성태12/11/201126941디버깅 기술: 46. Windbg 확장 DLL 만들기 (2) - Debugger Extension API 사용파일 다운로드1
1199정성태12/11/201128291VC++: 55. JNI DLL 컴파일 시 x86과 x64의 Export된 함수의 이름이 왜 다를까요? [2]파일 다운로드1
1198정성태12/9/201132082디버깅 기술: 45. Windbg 확장 DLL 만들기 (1) - 스레드를 강제 종료시키는 명령어 [2]파일 다운로드1
1197정성태12/9/201129866.NET Framework: 282. Shader 강좌와 함께 배워보는 XNA Framework (2) - RenderMonkey의 Shader/Model 파일 연동파일 다운로드2
1196정성태12/9/201133060.NET Framework: 281. Shader 강좌와 함께 배워보는 XNA Framework (1) - 기초 프로그램 구조 [3]파일 다운로드2
1195정성태12/8/201147715오류 유형: 143. DXSDK_Jun10.exe 설치 시 "Error Code: S1023" 오류 해결하는 방법 [4]
1194정성태12/8/201135488개발 환경 구성: 137. Visual C++ 런타임 구성요소에 대한 디버그 버전 설치하는 방법
1193정성태12/8/201122568오류 유형: 142. Windows Phone SDK 7.1 설치 시 Expression Blend 제거를 요구하는 경우
1192정성태12/8/201125588개발 환경 구성: 136. Windows 7 SP1의 IIS에서 사용자 프로파일을 로드하는 방법
1191정성태12/6/201126676.NET Framework: 280. MVC3에서 JavaScriptSerializer 재정의하는 방법파일 다운로드1
1190정성태12/6/201129869오류 유형: 141. Visual C++ 컴파일 오류 - error C2275: 'xxxxx' : illegal use of this type as an expression [1]
1189정성태12/6/201136925VS.NET IDE: 70. Visual Studio에서 프로젝트 로드가 안된다면?
1188정성태12/3/201126044개발 환경 구성: 135. 마이크로소프트 TFS 호스팅 서비스 - Preview [3]
1187정성태12/2/201130684개발 환경 구성: 134. Robocopy 오류 및 종료 코드
1186정성태12/1/201132526.NET Framework: 279. WPF - 그리기 성능 및 Blurring 문제파일 다운로드1
1185정성태11/29/201123316.NET Framework: 278. WPF - Content의 Changed 이벤트에 해당하는게 뭔가요?파일 다운로드1
1184정성태11/29/201126103.NET Framework: 277. F#과 WPF가 어울리지 못하는 근본적인 이유 [2]
1183정성태11/26/201121602오류 유형: 140. Visual Studio 2010 - Floating된 에디트 윈도우가 사라지지 않는 경우 [2]
1182정성태11/25/201157342.NET Framework: 276. 중복 없는 숫자를 랜덤으로 배열하는 방법 [5]파일 다운로드1
1181정성태11/24/201127794디버깅 기술: 44. windbg의 mscordacwks DLL 로드 문제
1180정성태11/23/201137609.NET Framework: 275. 레지스트리 등록 및 Interop DLL 없이 COM 개체 사용하는 방법 [2]파일 다운로드1
1179정성태11/22/201128212.NET Framework: 274. ReaderWriterLockSlim은 언제 쓰는 걸까요? [4]파일 다운로드1
1178정성태11/19/201124695.NET Framework: 273. 설치된 .NET 버전에 민감한 코드를 포함하는 경우, 다중으로 어셈블리를 만들어야 할까요?파일 다운로드1
1177정성태11/18/201129958.NET Framework: 272. 소켓 연결 시간 제한 - 두 번째 이야기 [1]파일 다운로드1
... 151  152  153  [154]  155  156  157  158  159  160  161  162  163  164  165  ...