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

비밀번호

댓글 작성자
 




... 121  122  123  124  125  126  127  128  129  130  131  132  133  [134]  135  ...
NoWriterDateCnt.TitleFile(s)
1704정성태7/2/201421628.NET Framework: 447. w3wp.exe AppPool 재생(recycle)하는 방법 정리
1703정성태7/2/201422466.NET Framework: 446. Assembly.Load를 이용해 GAC에 등록된 어셈블리를 로드하는 방법 [1]파일 다운로드1
1702정성태6/23/201422178Phone: 11. Xamarin.Forms - 2. XAML을 이용한 페이지 개발파일 다운로드1
1701정성태6/23/201434354개발 환경 구성: 229. .NET Reflector + Reflexil 도구를 이용해 DLL 코드 변경 [4]
1700정성태6/23/201421197VS.NET IDE: 89. Visual Studio에서 기본 제공되는 성능 프로파일 [2]
1699정성태6/22/201423999Phone: 10. Xamarin.Forms - 1. Forms 시작하기 [2]파일 다운로드1
1698정성태6/22/201425990.NET Framework: 445. [부연 설명] 쉬운 C# 코드를 어럽게 이해하기 [2]
1697정성태6/22/201421243VS.NET IDE: 88. Visual Studio에서 직접 컴파일하는 IL 언어 확장 도구 - IL Support
1696정성태6/22/201421060.NET Framework: 444. clojure와 C#을 통해 이해하는 Sequence와 Vector 형식의 차이점 [1]
1695정성태6/21/201420074개발 환경 구성: 228. PowerShell ISE에서 (입력 기능이 있는) 콘솔 응용 프로그램을 시작하는 방법
1694정성태6/21/201421214개발 환경 구성: 227. 닷넷 용 ClojureCLR 개발환경 설정
1693정성태6/20/201421553개발 환경 구성: 226. Clojure 언어의 윈도우 개발환경 설정
1692정성태6/19/201432155오류 유형: 231. Visual Studio 2013 한글 버전 설치 오류 - The form specified for the subject is not one supported or known by the specified trust provider
1691정성태6/18/201427386개발 환경 구성: 225. 유닉스 계열의 tail 명령어가 제공되는 PowerShell [1]
1690정성태6/18/201430167개발 환경 구성: 224. DirectShow 예제 구하는 방법 [3]
1689정성태6/18/201426981오류 유형: 230. C++ 가변 인자 사용시 va_start 파라미터 전달 방법 [2]
1688정성태6/15/201420573오류 유형: 229. 갤럭시 노트 3 환경에서 Xamarin 앱 배포 충돌
1687정성태6/15/201426594개발 환경 구성: 223. PowerShell로 Visual Studio 빌드 스크립트 작성파일 다운로드1
1686정성태6/12/201424296Windows: 96. 윈도우 8 - 그림 암호를 이용해 로그인 시 지연 현상을 해결하는 방법 [1]
1685정성태6/10/201431041.NET Framework: 443. 자바 8과 C#의 람다(Lambda) 지원에 대한 비교 [12]
1684정성태6/9/201441191.NET Framework: 442. C# - 시스템의 CPU 사용량 및 프로세스(EXE)의 CPU 사용량 알아내는 방법 [5]파일 다운로드1
1683정성태6/2/201420723오류 유형: 228. CLR4 보안 - yield 구문 내에서 SecurityCritical 메서드 사용 불가 [2]파일 다운로드1
1682정성태6/1/201425979.NET Framework: 441. .NET CLR4 보안 모델 - 3. CLR4 보안 모델에서의 APTCA 역할파일 다운로드2
1681정성태6/1/201421828.NET Framework: 440. .NET CLR4 보안 모델 - 2. 샌드박스(Sandbox)을 이용한 보안 [2]파일 다운로드1
1680정성태6/1/201421330.NET Framework: 439. .NET CLR4 보안 모델 - 1. "Security Level 2"란?파일 다운로드1
1679정성태5/31/201420438.NET Framework: 438. .NET CLR2 보안 모델에서의 APTCA 역할파일 다운로드1
... 121  122  123  124  125  126  127  128  129  130  131  132  133  [134]  135  ...