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

비밀번호

댓글 작성자
 




... 16  17  18  19  20  21  22  [23]  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13071정성태6/9/20227641스크립트: 39. Python에서 cx_Oracle 환경 구성
13070정성태6/8/20227521오류 유형: 813. Windows 11에서 입력 포커스가 바뀌는 문제 [1]
13069정성태5/26/20229721.NET Framework: 2019. C# - .NET에서 제공하는 3가지 Timer 비교 [2]
13068정성태5/24/20228131.NET Framework: 2018. C# - 일정 크기를 할당하는 동안 GC를 (가능한) 멈추는 방법 [1]파일 다운로드1
13067정성태5/23/20227450Windows: 206. Outlook - 1년 이상 지난 메일이 기본적으로 안 보이는 문제
13066정성태5/23/20226814Windows: 205. Windows 11 - Windows + S(또는 Q)로 뜨는 작업 표시줄의 검색 바가 동작하지 않는 경우
13065정성태5/20/20227436.NET Framework: 2017. C# - Windows I/O Ring 소개 [2]파일 다운로드1
13064정성태5/18/20227041.NET Framework: 2016. C# - JIT 컴파일러의 인라인 메서드 처리 유무
13063정성태5/18/20227480.NET Framework: 2015. C# - 인라인 메서드(inline methods)
13062정성태5/17/20228208.NET Framework: 2014. C# - async/await 그리고 스레드 (4) 비동기 I/O 재현파일 다운로드1
13061정성태5/16/20227029.NET Framework: 2013. C# - FILE_FLAG_OVERLAPPED가 적용된 파일의 읽기/쓰기 시 Position 관리파일 다운로드1
13060정성태5/15/20229587.NET Framework: 2012. C# - async/await 그리고 스레드 (3) Task.Delay 재현파일 다운로드1
13059정성태5/14/20227997.NET Framework: 2011. C# - CLR ThreadPool의 I/O 스레드에 작업을 맡기는 방법 [1]파일 다운로드1
13058정성태5/13/20227853.NET Framework: 2010. C# - ThreadPool.SetMaxThreads 사용법
13057정성태5/12/20229526오류 유형: 812. 파이썬 - ImportError: cannot import name ...
13056정성태5/12/20226640.NET Framework: 2009. C# - async/await 그리고 스레드 (2) MyTask의 호출 흐름 [2]파일 다운로드1
13055정성태5/11/20229649.NET Framework: 2008. C# - async/await 그리고 스레드 (1) MyTask로 재현 [11]파일 다운로드1
13054정성태5/11/20227072.NET Framework: 2007. C# - 10진수 숫자를 담은 문자열을 숫자로 변환하는 방법 [11]파일 다운로드1
13053정성태5/10/20226741.NET Framework: 2006. C# - GC.KeepAlive 메서드의 역할
13052정성태5/9/20226790.NET Framework: 2005. C# - 생성한 참조 개체가 언제 GC의 정리 대상이 될까요?
13051정성태5/8/20226684.NET Framework: 2004. C# XingAPI - ACF 검색 결과로 구한 CSV 파일을 통해 퀀트 종목 찾기파일 다운로드1
13050정성태5/6/20226737.NET Framework: 2003. C# - COM 개체의 이벤트 핸들러에서 발생하는 예외에 대한 CLR의 특별 대우파일 다운로드1
13049정성태5/6/20225655오류 유형: 811. GoLand - Error: Cannot find package
13048정성태5/6/20226868오류 유형: 810. "ASUS TUF GAMING B550M-PLUS (WI-FI)" 모델에서 블루투스 장치가 인식이 안 되는 문제
13047정성태5/6/20226882오류 유형: 809. Speech Recognition could not start
13046정성태5/5/20227168.NET Framework: 2002. C# XingAPI - ACF 파일을 이용한 퀀트 종목 찾기(t1857)
... 16  17  18  19  20  21  22  [23]  24  25  26  27  28  29  30  ...