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

비밀번호

댓글 작성자
 




... 91  92  93  94  95  96  [97]  98  99  100  101  102  103  104  105  ...
NoWriterDateCnt.TitleFile(s)
11509정성태4/28/201819930.NET Framework: 741. windbg로 확인하는 객체의 GC 여부
11508정성태4/23/201821537개발 환경 구성: 373. MSBuild를 이용해 프로젝트 배포 후 결과물을 zip 파일로 압축하는 방법파일 다운로드1
11507정성태4/20/201821398개발 환경 구성: 372. MSBuild - 빌드 전/후, 배포 전/후 실행하고 싶은 Task 정의
11506정성태4/20/201825679.NET Framework: 740. C#에서 enum을 boxing 없이 int로 변환하기 - 두 번째 이야기 [7]파일 다운로드1
11505정성태4/19/201818518개발 환경 구성: 371. Azure Web App 확장 예제 - Simple WebSite Extension
11504정성태4/19/201819930오류 유형: 465. Azure Web App 확장 - Extplorer File manager 적용 시 오류
11503정성태4/19/201819809오류 유형: 464. PowerShell - Start-Service 명령 오류 (Service 'xxx' cannot be started)
11502정성태4/17/201821648개발 환경 구성: 370. Azure VM/App Services(Web Apps)에 Let's Encrypt 무료 인증서 적용 방법 [3]
11501정성태4/17/201818565개발 환경 구성: 369. New-AzureRmADServicePrincipal로 생성한 계정의 clientSecret, key 값을 구하는 방법파일 다운로드1
11500정성태4/17/201819504개발 환경 구성: 368. PowerShell로 접근하는 Azure의 Access control 보안과 Azure Active Directory의 계정 관리 서비스
11499정성태4/17/201818135개발 환경 구성: 367. Azure - New-AzureRmADServicePrincipal / New-AzureRmRoleAssignment 명령어
11498정성태4/17/201818157개발 환경 구성: 366. Azure Active Directory(Microsoft Enfra ID)의 사용자 유형 구분 - Guest/Member
11497정성태4/17/201816223개발 환경 구성: 365. Azure 리소스의 액세스 제어(Access control) 별로 사용자에게 권한을 할당하는 방법 [2]
11496정성태4/17/201816616개발 환경 구성: 364. Azure Portal에서 구독(Subscriptions) 메뉴가 보이지 않는 경우
11495정성태4/16/201818957개발 환경 구성: 363. Azure의 Access control 보안과 Azure Active Directory의 계정 관리 서비스
11494정성태4/16/201815467개발 환경 구성: 362. Azure Web Apps(App Services)에 사용자 DNS를 지정하는 방법
11493정성태4/16/201817254개발 환경 구성: 361. Azure Web App(App Service)의 HTTP/2 프로토콜 지원
11492정성태4/13/201815255개발 환경 구성: 360. Azure Active Directory의 사용자 도메인 지정 방법
11491정성태4/13/201818408개발 환경 구성: 359. Azure 가상 머신에 Web Application을 배포하는 방법
11490정성태4/12/201817429.NET Framework: 739. .NET Framework 4.7.1의 새 기능 - Configuration builders [1]파일 다운로드1
11489정성태4/12/201815052오류 유형: 463. 윈도우 백업 오류 - a Volume Shadow Copy Service operation failed.
11488정성태4/12/201818134오류 유형: 462. Unhandled Exception in Managed Code Snap-in - FX:{811FD892-5EB4-4E73-A147-F1E079E36C4E}
11487정성태4/12/201817216디버깅 기술: 115. windbg - 닷넷 메모리 덤프에서 정적(static) 필드 값을 조사하는 방법
11486정성태4/11/201816329오류 유형: 461. Error MSB4064 The "ComputeOutputOnly" parameter is not supported by the "VsTsc" task
11485정성태4/11/201823540.NET Framework: 738. C# - Console 프로그램이 Ctrl+C 종료 시점을 감지하는 방법파일 다운로드1
11484정성태4/11/201824663.NET Framework: 737. C# - async를 Task 타입이 아닌 사용자 정의 타입에 적용하는 방법파일 다운로드1
... 91  92  93  94  95  96  [97]  98  99  100  101  102  103  104  105  ...