출처 : http://blog.whoru.co.kr/category/Operating%20System/Linux/Unix
"한/영"키와 "한자"키의 키코드값을 알아야 하기 때문에 프롬프트에 다음과 같이 입력을 합니다.
~$ xev
그러면 그놈에 무언가 하나가 뜨게 됩니다.
그놈에 새로뜬 정체모를창"Event Tester"를 클릭을 하시고 "한/영"키를 눌러봅니다.
그러면 터미널에 다음과 같이 출력되는것을 보실수 있습니다.
KeyPress event, serial 30, synthetic NO, window 0x4c00001,
root 0x45, subw 0x0, time 1349058578, (-273,193), root:(340,334),
state 0x10, keycode 210 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 30, synthetic NO, window 0x4c00001,
root 0x45, subw 0x0, time 1349058578, (-273,193), root:(340,334),
state 0x10, keycode 210 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
root 0x45, subw 0x0, time 1349058578, (-273,193), root:(340,334),
state 0x10, keycode 210 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 30, synthetic NO, window 0x4c00001,
root 0x45, subw 0x0, time 1349058578, (-273,193), root:(340,334),
state 0x10, keycode 210 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
위에서 꼭 알아야 할 부분은 Keycode부분 입니다.
제 컴퓨터의 경우 "한/영"키는 키코드값이 210으로 나오는군요
이번에는 "한자키를 눌러봅니다.
KeyPress event, serial 30, synthetic NO, window 0x4c00001,
root 0x45, subw 0x0, time 1349057380, (-273,193), root:(340,334),
state 0x10, keycode 209 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 30, synthetic NO, window 0x4c00001,
root 0x45, subw 0x0, time 1349057380, (-273,193), root:(340,334),
state 0x10, keycode 209 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
root 0x45, subw 0x0, time 1349057380, (-273,193), root:(340,334),
state 0x10, keycode 209 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 30, synthetic NO, window 0x4c00001,
root 0x45, subw 0x0, time 1349057380, (-273,193), root:(340,334),
state 0x10, keycode 209 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
이번에는 Keycode에 209라고 나옵니다. 이 값들을 꼭 기억해두거나 적어두도록 합니다.
"Event Tester"를 종료를 시킵니다.
그리고 프롬프트에 다음과 같이 입력합니다.
~$ sudo setkeycodes 71 210
~$ sudo setkeycodes 72 209
~$ xmodmap -e "keycode 210 = Hangul"
~$ xmodmap -e "keycode 209 = Hangul_Hanja"
~$ sudo setkeycodes 72 209
~$ xmodmap -e "keycode 210 = Hangul"
~$ xmodmap -e "keycode 209 = Hangul_Hanja"
1번행의 71 뒤에는 "한/영"키를 눌렀을때의 keycode값을 써줍니다.
2번행의 72 뒤에는 "한자" 키를 눌렀을때의 keycode값을 써줍니다.
이로서 모든 과정이 끝나게 되었습니다.