Uim 벼루, 한글 두벌식 + 영문 Dvorak. 사이좋게 지내자.. 우쿠분투/리눅스

지난 글에서, iBus 와 Uim/벼루의 공존에 대한 글을 썼었다.
그 때 마지막 남은 문제가 벼루에서 드보락 자판을 사용하는 것이었다.

오늘, 드디어 그 문제를 풀어낼 수 있었다.
벼루 제작자이신 박재현님의 도움으로 해결되었다. 이 자리를 빌어 다시 한번 감사 인사 올립니다!!

Uim 관련 문서를 대충 훑어보다가, 개인 설정 파일은 .uim 에 어쩌구 저쩌구 하는 글을 읽고 이런 저런 방식을 동원해봤었는데, 모두 제대로 작동하지 않았다. 나는 .uim 이 디렉토리라 생각하고 .uim 디렉토리를 만들고 그 안에 이런 저런 파일을 넣었었는데..
알고 보니 .uim 은 파일이었다. ^^

우분투에서 uim 관련 파일은 /usr/share/uim 밑에 *.scm 형태로 존재한다. 그 중에서 벼루에 관련된(자판 관련) 설정파일은 byeoru.scm 이다. 이 파일에 한글 두벌식, 세벌식등등의 정의가 기록되어 있다.
그런데, 이 설정은 영문 QWERTY 자판을 바탕으로 제작된 것이기 때문에, QWERTY 자판이 아닌 다른 모든 자판(ex. QWERTZ, AZERTY 등등)에서는 한국어를 제대로 입력할 수 없게 된다.
이럴 경우, 자신의 자판에 맞는 상황대로 .uim 파일을 생성/수정하면, 전 세계(?) 어느 나라 자판과도 어울리는 한국어 자판을 작성할 수 있게 된다.

이것을 사용하기 위해서, 먼저 우분투에 있는 텍스트 입력창에서 원하는 언어 자판을 추가해야 한다.


이런 후에, 추가한 자판(드보락)에 대응하는 한글 자/모음을 아래 파일에서 정의해주면 된다.
1:1 대응이기 때문에, 만약 자판을 2개 이상 사용한다면, 1개 자판에서만 한국어가 제대로 작동하고 다른 자판에서는 오류가 발생할 가능성이 있다. 이 부분에 대해서 제작자께 문의는 드렸는데, 고려해보시겠다는 답을 주셨다.




제작자께서 알려주신 방법대로, 이런 식으로 할당하면 된다.
~/.uim 파일을 만들고, 다음과 같은 내용을 입력한다.

(require-module "byeoru")

(byeoru-define-layout byeoru-layout-hangul2
;; Unshifted keys
("'" (choseong-bieub . 1) (jongseong-bieub . (3 4)))
("," (choseong-jieuj . 1) (jongseong-jieuj . (1 4)))
("." (choseong-digeud . 1) (jongseong-digeud . 1))
("p" (choseong-giyeog . 1) (jongseong-giyeog . (3 4)))
("y" (choseong-sios . 1) (jongseong-sios . (1 4)))
("f" (jungseong-yo . 1))
("g" (jungseong-yeo . 1))
("c" (jungseong-ya . 1))
("r" (jungseong-ae . (1 4)))
("l" (jungseong-e . (1 4)))
("a" (choseong-mieum . 1) (jongseong-mieum . (1 4)))
("o" (choseong-nieun . 1) (jongseong-nieun . 3))
("e" (choseong-ieung . 1) (jongseong-ieung . 1))
("u" (choseong-rieul . 1) (jongseong-rieul . 3))
("i" (choseong-hieuh . 1) (jongseong-hieuh . (1 4)))
("d" (jungseong-o . 3))
("h" (jungseong-eo . (1 4)))
("t" (jungseong-a . (1 4)))
("n" (jungseong-i . (1 4)))
(";" (choseong-kieuk . 1) (jongseong-kieuk . 1))
("q" (choseong-tieut . 1) (jongseong-tieut . (1 4)))
("j" (choseong-chieuch . 1) (jongseong-chieuch . 1))
("k" (choseong-pieup . 1) (jongseong-pieup . (1 4)))
("x" (jungseong-yu . 1))
("b" (jungseong-u . 3))
("m" (jungseong-eu . 3))


;; Shifted keys
("\"" (choseong-ssangbieub . 5))
("<" (choseong-ssangjieuj . 5))
(">" (choseong-ssangdigeud . 5))
("P" (choseong-ssanggiyeog . 5) (jongseong-ssanggiyeog . 5))
("Y" (choseong-ssangsios . 5) (jongseong-ssangsios . 5))
("F" (jungseong-yo . 1))
("G" (jungseong-yeo . 1))
("C" (jungseong-ya . 1))
("R" (jungseong-yae . 1))
("L" (jungseong-ye . 1))
("A" (choseong-mieum . 1) (jongseong-mieum . (1 4)))
("O" (choseong-nieun . 1) (jongseong-nieun . 3))
("E" (choseong-ieung . 1) (jongseong-ieung . 1))
("U" (choseong-rieul . 1) (jongseong-rieul . 3))
("I" (choseong-hieuh . 1) (jongseong-hieuh . (1 4)))
("D" (jungseong-o . 3))
("H" (jungseong-eo . (1 4)))
("T" (jungseong-a . (1 4)))
("N" (jungseong-i . (1 4)))
(":" (choseong-kieuk . 1) (jongseong-kieuk . 1))
("Q" (choseong-tieut . 1) (jongseong-tieut . (1 4)))
("J" (choseong-chieuch . 1) (jongseong-chieuch . 1))
("K" (choseong-pieup . 1) (jongseong-pieup . (1 4)))
("X" (jungseong-yu . 1))
("B" (jungseong-u . 3))
("M" (jungseong-eu . 3))

;;추가
("v" . ".")
("V" . ">")
("s" . ";")
("S" . ":")
("w" . ",")
("W" . "<")
("z" . "/")
("Z" . "?")
("/" . "[")
("?" . "{")
("=" . "]")
("+" . "}")
("-" . "'")
("_" . "\"")
("[" . "-")
("]" . "=")
("{" . "_")
("}" . "+")

)


위 내용의 원본은 /usr/share/uim/beyoru.scm 에 있다. 거기서 두벌식 관련 내용만을 떼내어 .uim 에 붙인 것이다.
복잡한 설정은 없다. 한글 자/모음에 1:1 대응하는 영문자를 입력해주면 된다.

그런데, 그렇게 하다보면 한글 자모에 해당하지 않는 영문자도 있을 수 있다. 예를 들어, 드보락의 v 는 두벌식 .(마침표)에 대응한다.
그런 것들을 모아놓은 것이 ;;추가 부분이다.

빠진 것이나 오류가 있을 지는 모르겠다. 확인하는대로 수정하기로 하고..

~/.uim 을 만든 후, 터미널에서 다음의 명령을 내려서 문법 오류가 없는 지 확인한다.
uim-sh ~/.uim

아무런 메시지가 나오지 않는다면 오류가 없는 것이다. 또는,
$ uim-sh
uim> byeoru-layout-hangul2

이런 방법도 있다.

또, 이스케이프 문자는 " 앞에만 붙이면 된다. 즉, "\"" 로 입력하면 된다. ' 는 "'" 이면 된다.

(별 도움은 안됐지만..) 다음 문서를 참고했다.

Configuration file

마지막으로, 파일 첫부분에 있는 byeoru-define-layout byeoru-layout-hangul2 은 다른 이름으로 바꾸면 안된다.
바꾸면 다른 부분도 바꿔야할 듯 한데.. 어떻게 하는지 모르겠다. 그냥 내버려 두면 된다.
세벌식등 다른 자판을 쓸 때도 이름은 그대로 놔둬야 할 듯 하다.

uim_dvorak.7z


핑백

덧글

댓글 입력 영역

Google Analyze


LastFm

MathJax