본문 바로가기
정보기술/일반

Synergy 1.3.1 Korean Patch 한글 패치

by fermi 2007. 5. 11.
http://www.magoja.com/tt/242
http://magoja.tistory.com/242

다운로드 받을 URL
http://sourceforge.net/projects/synergy2/
설치방법 설명 돼어진 사이트
http://blog.naver.com/happy4mf?Redirect=Log&logNo=40029520800
마고자가 수정한 한글패치 ( 설치됀 프로그램 파일 폴더에 덮어쓰세요 )
Synergy1.3.1.Korean_by_magoja.zip

http://www.magoja.com/tt/attachment/1141746154.zip


http://blog.ekatrevo.net/2006/01/synergy_127_windows_shift_spac.html


데스크탑과 노트북을 둘 다 사용하다보니 몸을 노트북 쪽으로 일일이 돌리는게 귀찮아서 키보드/마우스 공유 프로그램인 synergy를 설치해봤다. 두 장비 모두 Windows XP라서 원격데스크탑을 사용해도 되지만, 멋없자나...

하지만 예전에 겪었던 shift + space 로 한영전환 불가문제가 여전했다. 나만 한국어 키보드 타입3를 사용하나. 아니면 다들 나처럼 귀찮아서... 어쨌거나 상용 프로그램을 쓰기가 힘든 상황이어서 어떻게든 되게 해보고자 디버깅 좀 해봤다. 다행히 synergy는 런타임에 디버그 메세지 출력레벨을 정할 수 있어서, 최고 레벨로 디버그 메세지 찍게 해놓고 테스트좀 해봤더니 원인은 금방 밝혀졌다. 바로 호스트에서 shift + space 에 해당하는 vk code 값이 매핑이 안되어있어서 무시해버리는 것.

'왜 매핑을 안한거야' 라고 투덜대면서 소스를 뒤적거려봤더니 내부적으로 사용하는 키매핑 테이블에서 정말 해당 키값이 kKeyNone 이라는 값으로 무시되어있었다. (synergy는 platform independent하게 돌아가서 이러한 내부 전용 키 테이블이 필요하다.) 약간은 당황스러운 마음으로 새 키 값을 할당하고 이를 shift + space의 vk code값과 매핑시켰더니 그냥 단번에 해결되버렸다.

패치 내용은 다음과 같다:



diff -Naur synergy-1.2.7.org/lib/platform/CMSWindowsKeyState.cpp synergy-1.2.7/lib/platform/CMSWindowsKeyState.cpp
--- synergy-1.2.7.org/lib/platform/CMSWindowsKeyState.cpp   2005-12-19 03:41:33.000000000 +0900
+++ synergy-1.2.7/lib/platform/CMSWindowsKeyState.cpp   2006-01-27 00:55:25.000000000
@@ -56,7 +56,7 @@
        /* 0x012 */ { kKeyAlt_L },      // VK_MENU  
        /* 0x013 */ { kKeyPause },      // VK_PAUSE  
        /* 0x014 */ { kKeyCapsLock },   // VK_CAPITAL
   -   /* 0x015 */ { kKeyNone },       // VK_KANA
   +   /* 0x015 */ { kKeyShiftSpace }, // VK_KANA  
       /* 0x016 */ { kKeyNone },       // VK_HANGUL
       /* 0x017 */ { kKeyNone },       // VK_JUNJA  
       /* 0x018 */ { kKeyNone },       // VK_FINAL
diff -Naur synergy-1.2.7.org/lib/synergy/KeyTypes.h synergy-1.2.7/lib/synergy/KeyTypes.h
--- synergy-1.2.7.org/lib/synergy/KeyTypes.h    2005-11-26 07:34:15.000000000 +0900
+++ synergy-1.2.7/lib/synergy/KeyTypes.h    2006-01-27 00:54:11.000000000 +0900
@@ -130,6 +130,7 @@
static const KeyID     kKeyCancel      = 0xEF69;   /* Cancel, stop, abort, exit */
static const KeyID     kKeyHelp        = 0xEF6A;   /* Help */
static const KeyID     kKeyBreak       = 0xEF6B;
+static const KeyID     kKeyShiftSpace  = 0xEF7D;
static const KeyID     kKeyAltGr       = 0xEF7E;   /* Character set switch */
static const KeyID     kKeyNumLock     = 0xEF7F;