우분투 12.04 한글입력 문제

우분투 12.04를 그놈과 유니티로 바꾸어 가면서 필요할 때마다 선택해서 쓰고 있습니다.

한글입력기로는 나비와 아이버스를 써왔는데 어느날 부터 아이버스외에는 다른 입력기는 전혀 반응이 없습니다. 로케일 부터 xmodmap까지 온갖 세팅을 다 바꾸어도 꿈쩍하지 않습니다. System setting에서 나비로 im-switch에서 나비로 세팅했는데도 나비는 꼼작도 하지 않고 아이버스만 입력이 됩니다.
며칠동안 구글링을 해보아도 허탕치고나니 진이 빠졌습니다.

그래서 할 수 없이 아이버스를 쓰고 있는데 1.4.1 버젼이 생각보다 문제가 많지는 않는군요. 기능이 많이 개선 되었습니다. 제가 발견한 문제점은 Libreoffice에서 한글을 입력하다가 마우스를 다른쪽으로 옮기면 거기에 마지막 입력된 글자가 복사가 되는 오류가 있는 것 외는 잘되는 것 같습니다. 이 오류도 좀 불편하지만 글자를 친후에 스페이바를 치면 다음 칸으로 이동하면서 자연히 버퍼가 비어지면서 마우스를 움직여도 괜찮더군요.

참고하시고 다른 입력기가 먹통인 문제에 대한 고수님들의 고견 부탁드립니다.

나비는 화면에 아이콘도 뜨는데 입력이 전혀되지 않습니다.

일단 다음을 입력해보세요…

nabi& XMODIFIERS=@im=nabi xterm /bin/sh

이후 한영 전환시… 나비의 아이콘모양이 바뀌고, 한글입력이 된다면…
환경변수 설정에 문제가 있는 것입니다.

이경우에는
.bashrc파일을 편집해서

export XMODIFIERS=@im=nabi
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

이렇게 해보세요.

답변 감사합니다.

말씀하신 명령 nabi& XMODIFIERS=@im=nabi xterm /bin/sh을 수행해도 아이콘만 뜨고 한영변환키를 눌러도 변화가 없습니다.

이미 저의 .bashrc 파일은
LANGUAGE=ko_KR.UTF-8
LANG=ko_KR.UTF-8
LC_ALL=$LANG
IM=nabi
GTK_IM_MODULE=$IM
QT_IM_MODULE=$IM
XIM=$IM
XMODIFIERS=@im=$IM
이렇게 설정되어 있고

xev를 이용하여 한영키 값을 확인하여
sudo setkeycodes 71 108 을 한후에
.Xmodemap에 다음을 추가했습니다.
xmodmap -e "keycode 108 = Hangul"

그래도 아무런 변화가 없습니다.
무슨 문제 일까요?

앞서의 명령은 두줄로 써야 되는군요… 나비가 초기화될 시간이 필요한가봅니다.
nabi&
XMODIFIERS=@im=nabi GTK_IM_MODULE=xim xterm

키보드가 104키로 설정되어 있는지 확인하시구요.
한영키가 아니라 shift+SPACE로 해보세요…
한영키는 HUD와 연결되었을 수 있습니다.

나비와 아이버스를 두개 띠워놓고도 잘 전환이 됩니다만??
nabi&
ibus-daemon -drx
XMODIFIERS=@im=nabi GTK_IM_MODULE=xim xterm
XMODIFIERS=@im=ibus GTK_IM_MODULE=xim xterm
무엇이 문제일까요?

두줄 나누어 입력하니 xterm에서 한글이 나왔습니다. 가뭄에 단비를 만난 기분입니다.

그런데 말씀하신데로 .bashrc에

엇export XMODIFIERS=@im=nabi
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

추가했습니다.

키보드는 101/104 호완용입니다.

그런데 Xterm을 제외하고 다른 곳에서는 한영 전환이 안됩니다.

무엇을 변경해야 하는지요?

한글키는 물론이고 shift+ space 키도 역시 듣지 않습니다.

sudo update-alternatives --config xinput-ko_KR에서 nabi로 설정해보세요.
기본적으로 입력기설정은
/etc/X11/xinit/xinput.d 디렉토리에 존재하고…
ko_KR은 nabi나 ibus의 심볼릭링크를 만들게 됩니다.
실제는 여기 한단계가 더 추가되어

/etc/X11/xinit/xinput.d/nabi > /etc/alternatives/xinput-ko_KR > /etc/X11/xinit/xinput.d/ko_KR
이렇게 심볼릭링크가 이루어집니다.

update-alternatives는 /etc/alternatives의 링크를 관리합니다.

또한, im-switch 명령은 $HOME/.xinput.d에 링크를 만들어줍니다.
이것도 한번 확인해 보시기 바랍니다.

There are 6 choices for the alternative xinput-ko_KR (providing /etc/X11/xinit/xinput.d/ko_KR).

Selection Path Priority Status

0 /etc/X11/xinit/xinput.d/ibus 60 auto mode
1 /etc/X11/xinit/xinput.d/ibus 60 manual mode
2 /etc/X11/xinit/xinput.d/imhangul 49 manual mode

  • 3 /etc/X11/xinit/xinput.d/nabi 40 manual mode
    4 /etc/X11/xinit/xinput.d/scim 0 manual mode
    5 /etc/X11/xinit/xinput.d/scim-bridge 60 manual mode
    6 /etc/X11/xinit/xinput.d/scim-immodule 50 manual mode

Press enter to keep the current choice[*], or type selection number: 3
이미 나비로 설정되어 있습니다.

그리고 심볼릭 링크는

이게 아니고
/etc/X11/xinit/xinput.d/nabi > /etc/alternatives/xinput-ko_KR > /etc/X11/xinit/xinput.d/ko_KR

방향이 완전히 되어있군요.

/etc/X11/xinit/xinput.d/nabi <— /etc/alternatives/xinput-ko_KR <–/etc/X11/xinit/xinput.d/ko_KR
혹시 이걸 의미하는 것인지요 > = <—
$HOME/.xinput.d 안에 있는 en_US 파일입니다.

XIM=nabi
XIM_PROGRAM=/usr/bin/nabi
XMODIFIERS="@im=nabi"

XIM_ARGS=

GTK_IM_MODULE=xim

그런데 ko-Kr 파일은
GTK_IM_MODULE=hangul2 로 되어 있네요.

im-switch에서 나비로 셋팅했는데 ko-KR은 바뀌지가 않네요.

그래서 강제로 .xinput.d/ko-KR을 나비로 링크 시켰습니다.
ko_KR -> /etc/X11/xinit/xinput.d/nabi

그래도 아직 나비입력이 안됩니다.

재로그인 해보셨나요?

앗… 설정이 잘못되셨군요…
LANGUAGE="ko_KR:ko:en_GB:en" 이런식으로 적으셔야 합니다.
이것은 인코딩을 뜻하는것이 아니라 사용언어목록을 적는것입니다.
그래서 ko_KR이 바뀌는것이 아니라 영어쪽이 변경된것이로군요…
사용언어가 영어로 설정된 것입니다.

재로그인 재부팅 다해보았습나다. ㅠㅠ

언어설정을 하였습니다. /etc/environment 와 .bashrc 에 말씀하신데로 입력시켰습니다.

#/etc/environment
LANG="ko_KR.utf8"
LANGUAGE="ko_KR;ko;en_GB;en"
LC_ALL="ko_KR.utf8"

#~/.bashrc
LANG="ko_KR.utf8"
LC_ALL="$LANG"
LANGUAGE="ko_KR;ko;en_GB;en"

설정후 재로그인해도 여전히 문제가 해결되지 않습니다.

현재 로케일을 입력하면 다음과 같이 나옵니다.
LANGUAGE=ko_KR:ko:en_GB:en
LC_CTYPE="ko_KR.UTF-8"
LC_NUMERIC="ko_KR.UTF-8"
LC_TIME="ko_KR.UTF-8"
LC_COLLATE="ko_KR.UTF-8"
LC_MONETARY="ko_KR.UTF-8"
LC_MESSAGES="ko_KR.UTF-8"
LC_PAPER="ko_KR.UTF-8"
LC_NAME="ko_KR.UTF-8"
LC_ADDRESS="ko_KR.UTF-8"
LC_TELEPHONE="ko_KR.UTF-8"
LC_MEASUREMENT="ko_KR.UTF-8"
LC_IDENTIFICATION="ko_KR.UTF-8"
LC_ALL=ko_KR.UTF-8

아, 죄송합니다.

드디어 웹과 오피스에서 되는군요. :D

계속 gedit과 terninal에서 체크하다 보니 전혀 안되는 줄 알았습니다.

그런데 왜 gedit과 terminal에서는 안되는지 알 수가 없군요.

왜 이전처럼 모든 곳에서 다 되지 않은 것일까요?

그런데 LANGUAGE구분자는 세미콜론이 아니라 콜론입니다.

그리고, 저는 gedit와 xterm모두 잘 작동합니다만…

gnome-terminal이 말을 안듣는군요…
글구 환경변수를 참조하지도 않는 것 같아요.
im-switch로 변경하고… 재로그인해야 하나봐요.
===>
아… gnome-terminal에서 gnome-terminal을 실행해서 생기는 문제군요…
xterm에서 gnome-terminal을 실행해보니 잘됩니다.

참고로 gnome-terminal이나 gedit같은 프로그램은 GTK_IM_MODULE변수를 참조합니다.

그러나, opera같은 곳에선… 나비가 이상하게 작동합니다.

그런 프로그램들이라면… 호환성이 좋은 ibus로 연결하도록 설정해주세요.

콜론으로 바꾸었지만 여전히 gedit와 terminal에서 안되는군요.

xterm은 저 역시 잘됩니다만 xterm에서 gnome-terminal을 불러서 사용한 gnome-terminal 역시

안됩니다.

그래도 지금까지 많이 개선되었습니다.

진심어린 감사의 말씀드립니다.

제 실력으로는 더 이상 진도를 나갈 수가 없군요.

혹시 더 바꾸어 보아야 할 파일이 있으면 알려 주시면 좋겠습니다.

특이한 것은 이렇게 한줄에 쓰면 gedit에서 되고
XMODIFIERS=@im=nabi GTK_IM_MODULE=xim gedit

두줄로 하면 안됩니다.
XMODIFIERS=@im=nabi

GTK_IM_MODULE=xim gedit

그것은 그럴 수 있습니다.

왜냐면 export문을 쓰지 않은 관계로… 환경변수가 하위프로세스로 전달되지 않습니다.
두번째 문의 XX=MMM prog 형식의 문장은 사실…
env XX=MMM prog 문장과 같은거라…
prog를 실행시키면서 환경변수를 잡아줍니다.
그리고, GTK_IM_MODULE=xim으로 썼으니…
xim을 사용할것이고, 이것은 XMODIFIERS환경변수를 참조하게됩니다.
그러나 XMODIFIERS값이 잘못 설정되었다면…
두번째 문장도 의미가 없어집니다.

나비 입력기에서 GTK_IM_MODULE=nabi 는 먹지 않고 xim으로 사용하여야 하기 때문에…
반드시 XMODIFIERS=@im=nabi로 설정되어야 합니다.

그러나, ibus의 경우는 XMODIFIERS가 nabi로 설정되어 있더라도
GTK_IM_MODULE=ibus값만으로도 gtk기반 프로그램에서 ibus로 설정됩니다.