2007년 10월 1일 월요일

데비안에서 한글키 설정

데비안에서에서 한글키 설정이 전에는 키보드 스캔을 해서 (showkey -s와 xev) 설정했는데, xevxorg.conf에서 korean 106-key가 지원되어 이젠 쉽게 설정할 수 있습니다.


Xorg.conf에서 한글키 설정

데비안 etch 설치시 언어는 한국어, 키보드는 영어를 선택하여 설치하면 xorg.conf에
"XkbModel" "pc104", "XkbLayout" "us"로 설정됩니다. 다음과 같이 바꾸어 줍니다.

# nano -w /etc/X11/xorg.conf
다음과 같이 kr106과 kr을 변경합니다.

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "kr106"
Option "XkbLayout" "kr"
EndSection
SCIM을 사용할 경우 전환키에 한글키로 되어있는지 확인압니다.

키보드를 직접 설정
데비안 (etch) 설치시 언어는 한국어, 키보드는 영어를 선택하여 다음과 같이 바꾸어 줍니다.
데비안

설치할 때 언어는 한국어, 키보드 레이아웃은 미국으로 하였습니다. 설치 후 시스템 -> 기본 설정 -> 키보드하면 키보드 모델은 일반 104키 PC, 키배치는 U.S. English 입니다. 키 배치에 대한민국 101/104 호환을 추가하여 맨위로 올리면 한글키/한자키는 잘 됩니다.
그러나 VMware를 설치하고 VMware에서 lenny를 설치하면 한글키/한자키가 인식이 안됩니다. VMware에서도 키설정이 제대로 되게 하려고 인터넷을 찾게 되었고, 다음과 같이 하였습니다.

먼저 키보드의 키배치 탭에서 기본갑으로 리셋을 눌러 원래대로 키보드 모델은 일반 104 PC로 하고, 키배치는 U.S. English로 하였습니다.

데비안 etch와 lenny의 /usr/share/xmodmap/xmodmap.kr 파일에 한글키와 한자키 설정이 keycode 121 = Hangul_Hanja 및 keycode 122 = Hangul
로 설정되어 있습니다.

  • $ less /usr/share/xmodmap/xmodmap.kr
    빠져나오기는 q 입니다.

xmodmap.kr은 건들이지 않고 다음과 같이 하였습니다. 먼저 X윈도우를 빠져나와서 (
Ctrl + Alt + F1하면 됩니다.)

  • $ showkey -s

한글키를 눌러보고 한자키를 눌러보니 scan code값이 한글은 0xf2 이며 한자는 0xf1 입니다. 이 scan code 값을 xmodmap.kr에 있는 keycode 122, 121로 되게 아래와 같이 하였습니다.

  • $ su -
  • # setkeycodes f2 122
    한글 scancode 0xf2를 keycode 122로
  • # setkeycodes f1 121
    한자 scancode 0xf1를 keycode 121로

다시 X윈도우로 들어가(Ctrl + Alt + F7하고) 키를 누르니 한글키와 한자키 모두 인식을 못합니다.
X윈도우에서 xev를 실행하고 한글키와 한자키를 누르면 NoSymbol 이 보입니다.
그리고 한글키를 누르면 setkeycodes f2 122로 keycode 122 정한 한글키가 X윈도우에서 keycode 210로 인식되고, setkeycodes f1 121로 keycode 121로 정한 한자키는 X윈도우에서 keycode 209로 인식이 됩니다. 커맨드 창에서 X윈도우가 인식한 keycode를 아래아 같이 하였습니다.

  • $ xmodmap -e "keycode 210 = Hangul"
  • $ xmodmap -e "keycode 209 = Hangul_Hanja"

한글키를 누르니 setkeycodes f2 122로 keycode 122 정한 것이 X윈도우에서 keycode 210로 인식되고 이 키가 한글키로 잘 인식하였습니다.
한자키를 누르면 setkeycodes f1 121로 정한것이 X윈도우에서 keycode 209로 인식되고 이 키가 한자키로 인식되었습니다.
xev 실행하여 한글키와 한자키를 눌러보면 NoSymbol이 없어지고 Hangul 및 Hangul_Hanja로 맞게 보입니다.

이제 컴퓨터를 켜면 setkeycodes f2 122 및 setkeycodes f1 121 명령이 실행되게 다음과 같이 하였습니다.
  • # nano -w /etc/rc.local
    맨 밑줄에 있는 exit 0 보다 위에서 다음과 같이 입력하고 저장하였습니다.
    setkeycodes f2 122
    setkeycodes f1 121

이 keycode 122와 121이 X윈도우선 keycode 210 및 209로 인식됩니다. 이 keycode 210 및 209가 한글키 및 한자키로 설정이 되게 ~/.xinitrc와 ~/.xmodmap을 다음과 같이 하였습니다.

  • $ nano -w ~/.xinitrc
    다음과 같이 입력하고 저장하였습니다.
    #! /bin/bash
    xmodmap ~/.xmodmap
    저장은 Ctrl + 영문 o 이며, 끝내기는 Ctrl + x 입니다.
  • $ nano -w ~/.xmodmap
    다음과 같이 입력하고 저장했습니다.
    keycode 210 = Hangul
    keycode 209 = Hangul_Hanja
다시 부팅해도 한글키와 한자키 모두 잘 됩니다.
언어는 한국어, 키보드는 미국에, 한글키 및 한자키가 추가된 106키로...

VMware에서

처음 설치시에 언어는 한국어, 키보드 레이아웃은 미국으로 선택했습니다.
처음 설치 후 데스크탑 -> 기본 설정 -> 키보드에서 키보드 모델은 일반 104키 PC, 키배치는 U.S. English 입니다. 키보드 모델과 키 배치를 그대로 나두고 xev를 실행하고 한글키와 한자키를 눌러보니 전혀 반응이 없었습니다. X윈도우를 빠져나옵니다.
그냥 Ctrl + Alt + F1하면 Host 컴퓨터가 X윈도우를 나와버립니다. 물론 다시 Ctrl + Alt + F7하면 됩니다. VMware에서 설정이 안되어 있으면 커맨드 창을 열고 다음과 같이 합니다.

  • $ su -
    Gnome이면
    # /etc/init.d/gdm stop
  • X윈도우를 빠져 나와서 scan code를 알아봅니다.
    $ showkey -s

한글키늘 눌렀을 때 알지 못하는 키가 눌려졌으니 setkeycodes 72 를 사용하라는 하며, 한자키를 누르니 setkeycodes 71 로 하라는 글이 보입니다.
데비안 etch와 lenny의 /usr/share/xmodmap/xmodmap.kr 파일에 한글키와 한자키 설정이 다음과 같이 보입니다.
keycode 121 = Hangul_Hanja
keycode 122 = Hangul
그래서 scan code 72와 71을 다음과 같이 각각 key code 122 와 121로 정했습니다.

  • # setkeycodes 72 122
    # setkeycodes 71 121
  • $ showkey -s 하여도 화면에 아무런 응답이 없을 수 있습니다.
    $ showkey -s 하고 한글키를 몇 차례 누릅니다. 10초가 지나면 다시 명령어를 입력할 수 있습니다. 다음과 같이 하면 메시지를 볼 수 있습니다.
    $ dmesg | tail
    $ showkey -s 하고 이번엔 한자키를 몇 번 눌러줍니다. 다시 또
    $ dmesg | tail

다시 X윈도우로 들어가 xev를 띄어 한글키를 누르니 keycode 122로 정한 것이 X윈도우에서는 keycode 210 인식이 되나 NoSymbol로 설정이 되어있지 않았고, 한자키를 누르면 keycode 121로 정한것이 X윈도우에서 keycode 134로 정해지며 NoSymbol 입니다.
커맨드창에서 다음과 같이 하였습니다.

  • $ xmodmap -e "keycode 210 = Hangul"
  • $ xmodmap -e "keycode 134 = Hangul_Hanja"

이제 한글키와 한자키가 바르게 됩니다.
xev를 실행하고 한글키를 누르면 keycode 122로 정한 것이 X윈도우에서 keycode 210으로 인식되고 Hangul로 맞게 설정이 되며, 한자키를 누르면 keycode 121로 정한것이 X윈도우에서 keycode 134로 정해지며 Hangul_Hanja로 설정이 맞게보입니다.

이제 컴퓨터가 켜질 때 위의 설정이 되게 다음과 같이 하였습니다.
먼저 setkeycodes 71 122 및 setkeycodes 71 121 명령이실행되게
  • # nano -w /etc/rc.local
    맨 밑줄에 exit 0 이 보입니다. exit 0 보다 위에서 다음의 내용을 입력하였습니다.
    setkeycodes 72 122
    setkeycodes 71 121

scan code 72와 71을 keycode 122와 121로 설정되고, X윈도우선 각각 keycode 210과 keycode 134로 인식됩니다. 이제 keycode 210과 134가 각각 한글키 및 한자키로 설정이 되게 ~/.xinitrc와 ~/.xmodmap을 다음과 같이 하였습니다.

  • $ nano -w ~/.xinitrc
    다음과 같이 입력하고 저장하였습니다.
    #! /bin/bash
    xmodmap ~/.xmodmap
  • $ nano -w ~/.xmodmap
    다음과 같이 입력하고 저장했습니다.
    keycode 210 = Hangul
    keycode 134 = Hangul_Hanja

다시 부팅하니 한글키 및 한자키가 모두 잘 인식하였습니다.
언어는 한국어, 키보드는 미국에, 한글키 및 한자키가 추가된 106키로...

댓글 1개:

익명 :

buy ambien online overnight ambien jet lag prevention - duration of ambien withdrawal