skip menu and go to main content

body start

새나루

Resolved  colemak (콜맥) 키보드 지원 2 ]

10.03.14-01:30:23

315212

Submitted by wkpark

Assignee wkpark

View3658

Priority2

[#315125]에 의해 스캔코드 기반이 지원되기 시작하면서부터 다른 키보드 layout을 좀 더 쉽게 지원할 수 있게 되었습니다.

예를 들어 콜맥(colemak) 키보드를 아주 쉽게 지원할 수 있습니다.

 1. 콜맥 키보드 드라이버를 설치 - 콜맥 사이트에 가면 콜맥 레이아웃을 지원하는 키보드 dll 드라이버를 받을 수 있습니다. 이것을 설치
 2. 새나루 콜맥을 추가.

새나루 드보락을 추가하는 방식과 똑같이 새나루 콜맥을 만들 수 있습니다.

-------
REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0140412]
"Layout file"="colemak.dll"
"Layout text"="새나루 한글 입력기"
"Layout display name"="한글 입력기 (새나루 콜맥)"
"IME File"="SAENARU.IME"
-------

여기서 새나루의 HKL값은 E0120412, 새나루 드보락은 E0130412이므로 E0140412를 임으로 새나루 콜맥으로 지정했습니다.

이렇게 하면 새나루와 콜맥 키보드 조합을 사용할 수 있습니다. (콘솔 포함)


----
주의할 것은 콜맥 키보드 레이아웃 드라이버에서 101 키보드의 오른쪽 Alt키를 한영키로 오른쪽 Ctrl을 한자키로 쓸 수 없기때문에
101키보드를 사용할 경우는 Shift-SPACE를 사용하셔야 하거나, 오른쪽 ALT/Ctrl 키를 한/영 한자키로 매핑을 고친 colemak 드라이버를
설치해야 합니다.

Microsoft Keyboard Layout Creator를 사용해서 Colemak.klc를 컴파일 할 때 바로 컴파일하지 말고
kbdutool.exe 명령행 툴을 이용하여 소스를 generate한 후에 KBD_TYPE가 4이던 것을 10 으로 바꿔서 다시 컴파일 해주어야 합니다.
(여기에 써진 방법대로 새나루 드보락 키보드 드라이버를 만들었습니다.)

Severity : Minor

Resolution : Fixed

Comments on this artfact

2 Comments

wkpark

예전의 VK 키코드 기반일 경우는 드보락 지원이 두가지 방식이었지요.

=== 쿼티 키보드 드라이버 ===
 * 쿼티의 VK키코드 => 드보락 변환 테이블(영문) or 쿼티-한글 변환 테이블(한글) => 입력
=== 드보락 키보드 드라이버 ===
 * 드보락의 VK키코드 => 드보락-쿼티 변환 테이블 => 쿼티-한글 변환 테이블(한글) (영문일 경우는 곧바로) => 입력.

== 스캔코드 방식 ==
스캔코드 방식일 경우는 다음과 같이 처리됩니다.

 * 키보드 스캔코드 => 스캔-쿼티 변환 테이블 => 쿼티-한글 변환 테이블(한글) 영문일 경우는 곧바로 VK 키코드 사용 => 입력
스캔 코드방식일 경우에는 어떠한 키보드 레이아웃인지에 상관 없이 작동하게 되며,
변환 테이블이 스캔-쿼티 변환테이블로만 처리되기 때문에, 드보락-쿼티 혹은 콜맥-쿼티와 같은 테이블이 불필요하게 되었습니다.

단, 나비 혹은 libhangul 기반의 프로그램과 하위 호환성을 위해서 쿼티-한글 변환 테이블의 방식은 그대로 유지하기로 하였습니다.
(즉, 스캔코드-한글 테이블을 사용하는 것이 아닌)

10.03.14-01:40:33

wkpark

kbd*dll만 교체하면 되는 간단한 방식이 없을까 해서 찾아봤지만 그런 것은 없네요.
LoadKeyboardLayout()같은 것은 사실상 언어/자판 전환(혹은 IME간의 전환)이네요..

kbd*dll이 있고, 그것에 대응하는 registry 항목을 추가만 하면 되는 간단한 것이므로,
위에서 설명한 방식대로만 지원하도록 할 것입니다.

콜맥 드라이버의 설치 추가 여부는 옵션으로 처리하고..

10.03.15-12:40:52

wkpark

"Assigned To" was changed from "Nobody" to "wkpark"
"Priority" was changed from "3" to "2"

10.03.15-12:41:15

wkpark

"Resolution" was changed from "None" to "Fixed"
"Severity" was changed from "None" to "Minor"

10.03.15-19:51:21

wkpark

"State" was changed from "Open" to "Closed"

10.03.15-19:51:27

wkpark

Codes changed : saenaru/colemak/kbdcmk.h [#315212] fix to set the CapsLock key as the backspace key.

10.03.15-22:36:11