Synergy 한글키 문제 원인 분석

Synergy 한글키 패치는 공식 소스에 이미 반영 되었지만, 블로그를 갈아타면서 옮겨둘 만한 것은 다시 정리해서 재작성 해 둔다. 글을 드문드문 쓰다보니 어떤 글은 반말, 어떤 글은 존대말 섞여 있다. 그러려니 해 달라...


윈도우에서 지원하는 한글 키보드 레이아웃은 크게 2가지가 있습니다.
나누는 기준은 바로 "한글, 한자 변환 전용키가 있느냐 없느냐?" 입니다.
이 키가 있다면 103/106키 키보드 없다면 101/104키 키보드가 됩니다.

그래서 103/106키 키보드에서는 일반적으로 한영키가 VK_HANGUL 키로 매핑이되고,
한자키가 VK_HANJA 로 매핑이 됩니다.
하지만 한영/한자키가 없는 키보드의 경우,(대표적으로 노트북이 그렇습니다)
오른쪽 Alt 키를 VK_HANGUL키로 오른쪽 Control 키를 VK_HANJA키로 매핑시킵니다.

문제가 되는 부분은 아래와 같이 일본어 키보드의 VK_KANA 와 VK_KANJI 라는 키가
한국어 키보드의 VK_HANGUL 과 VK_HANJA 와 동일한 키코드 값을 가지고 있습니다.

시너지의 경우 VK_XXXXX 키를 1:1 로 리눅스의 X Key Symbol Definitions에 매핑시켜서 사용하는데, X Key Symbol Definitions서는 일어/영문 변환키의 값과 한글/영문 변환키의 값이 다릅니다.
(Kana : 0xEF26, Hangul : 0xEF31, Kanzi: 0xEF2A, Hanja: 0xEF34)
그래서 윈도우 시너지 서버에서는 VK_HANGUL 을 리눅스 시너지 클라이언트로 0xEF26 을 넘기게 되고, 이 값은 리눅스의 한국어 키보드에서는 무시됩니다.

따라서 윈도우의 한영키가 리눅스로 제대로 넘어가기 위해서는, 키보드 입력기가 어떤 언어의 입력기 인지 확인하여 거기에 맞는 X Key Symbol Definitions 값을 전달해야 합니다.

이 부분은 다양한 환경에서 테스트가 되어야 할 것 같습니다.
윈도우 시너지 서버의 키보드 레이아웃이 101/104키인 경우와 103/106키인 경우의 한영,한자,Alt_R,Control_R 키가 리눅스 시너지 클라이언트의 키보드 레이아웃이 한국어인 경우와 한국어 104키인 경우... 그리고 리눅스의 경우는 다양한 버전과 입력기 상황이 있기 때문에 여기에 대한 테스트가 되어야 할 것 같습니다.

댓글

  1. macOS에서 한영전환 단축키 입력시, 시스템 트레이 상에선 언어입력기가 변경되는 것이 확인되나, 실제론 영어로만 입력되는 문제의 원인도 이와 동일한것일까 싶네요. 해당 내용을 좀더 분석하여 맥에서도 적용할 수 있는 방법을 찾아봐야할 것 같습니다.
    좋은 포스팅 감사합니다.

    답글삭제
  2. 돈주고 시너지 샀는데 한영키 안돼서 너무 불편하네요 ㅋㅋㅋㅋ

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

[게임개발 스토리] 장르/타입/조합 정보와 몇 가지 팁

[윈도우] 실행 중인 프로그램의 타이틀을 변경하는 유틸리티

Synergy 한글키 패치 공식 버전 적용 및 최종 정리