· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
nabi

Nabi 나비

SystemTray(NotificationArea)를 지원하는 GTK+2로 만든 한글 입력기(XIM)
http://kldp.net/projects/nabi/


2. 기능(Feature)과 특징

  • imhangul, KDEKorea:qimhangul 의 입력 상태 정보도 보여줌
  • XkbKeymap과 충돌하지 않음 (imhangulXkbKeymap과 충돌하지 않음)
  • SystemTray에서 여러 테마를 선택할 수 있음
  • 두벌식, 세벌식두벌자판, 세벌식최종, 세벌식390 기본 지원
  • Dvorak 자판 지원
  • 64bit architecture 에서 동작
  • Eclipse, Nautilus에서도 정상적으로 입력됨
  • 한자 입력할 때 뜻도 보여줌
  • libhangul 사용

3. TODO

  • 1.0 release
  • 기호 입력 리스트에서도 각 기호의 뜻 설명을 추가
  • 한자 전용 모드 구현

<!> 필요한 기능은 이제 프로젝트 페이지의 [http]Feature Request를 이용하시는 것이 좋겠습니다.

4. DownLoad

5. 설치

<!> 컴파일 하기 위해서는 GTK+2.2 이상이 필요합니다.

기본적으로 빌드하는 방법은 대부분의 프로그램들 처럼
$ ./configure && make
$ su
# make install 

하면 됩니다.

소스를 Subversion으로 받으실 수도 있습니다.
svn checkout svn://kldp.net/svnroot/nabi/nabi/trunk nabi
<!> 참고: http://kldp.net/scm/?group_id=275

Subversion으로 받고 나면 configure 스크립트가 없습니다. 이를 생성하기 위해서는 아래와 같은 순서로 몇개의 프로그램을 실행 하셔야 합니다.
glib-gettextize && \
aclocal -I m4 && \
autoheader && \
automake --add-missing --copy && \
autoconf
./configure --prefix=$HOME/nabi
make

6. 설정

6.1. 환경 변수 설정

반드시 환경 변수 XMODIFIERS="@im=nabi"를 설정하셔야 입력이 가능합니다. 이 환경변수는 각 어플리케이션을 실행하기 전에 설정되어 있어야 그 어플리케이션이 영향을 받습니다.
  • RedHat 계열
    • Fedora Core 1,2, 기타 다른 것들
      개인 설정 $HOME/.i18n파일에 다음과 같은 설정을 넣습니다. 만일 이 파일이 없다면 아래 내용만 넣고 새로 만드시면 됩니다.
    • export XMODIFIERS="@im=nabi" #반드시 필요
      export XIM_PROGRAM=/usr/local/bin/nabi # /etc/X11/xinit/xinitrc.d/xipnut에서 사용됨
      

    • FedoraCore 3
      $HOME/.xinput.d/ko_KR 파일에 다음과 같은 설정을 추가
      XIM=nabi
      XMODIFIERS="@im=nabi"
      XIM_PROGRAM=/usr/bin/nabi
      GTK_IM_MODULE=xim
      
    • 한컴리눅스의 경우 /etc/bashrcXMODIFIERS가 Ami로 하드코딩되어 있습니다. 그 라인을 지우시기 바랍니다. 최근에 출시된 4.0도 그런가요?(AnswerMe)
  • Debian GNOME을 사용하신다면 $HOME/.gnomerc 파일에 다음을 추가하시면 됩니다.
    export XMODIFIERS="@im=nabi"
    
    KDE를 사용하신다면 $HOME/.kde/env/nabi.sh 파일을 만들고 다음을 추가하시면 됩니다.
    export XMODIFIERS="@im=nabi"
    


  • Ubuntu http://ubuntu.or.kr/wiki.php/InstallingInputMethods

  • Gentoo
    CNGentooInstall을 참고하여 설치하였습니다. /etc/env/d/00basic 파일을 편집하여 LANG, SUPPORTED, SYSFONT, SYSFONTACM, XMODIFIERS, XIM_PROGRAM를 등록하였습니다. 이후에 env-update와 source /etc/profile의 과정을 통해서 환경설정을 업데이트 하여 설치하였습니다. (더 자세히 아는 분이 수정, 추가해주십시요.)

  • SuSE
    /etc/X11/xim 파일을 수정해줍니다. 수세의 경우 9.x버전부터 xim에 입력기를 전적으로 의존하고 있습니다. 참고로 9.1은 ami가 기본으로 들어있고 9.2는 scim(kde는 skim)이 기본으로 들어있습니다. 스크립트 구성을 보면 알겠지만 맨 먼저 통합적인 환경설정을 하고 그 후에 각 언어별 설정을 하게 되어있는데 그중 통합설정 부분과 언어별 설정부분중 ko만 바꿔주면 되겠습니다. 현재 제가 9.2를 사용하고 있으니 9.2를 기준으로 설명하겠습니다. 단지 ami이냐 scim이냐의 차이뿐 사실 그다지 차이는 없습니다. 9.1의 경우 사실 동일 파일 내의 ami를 nabi로 죄다 치환만 하면 가능하다고 생각해도 될것입니다. -- ydhoney


    start_scim () 항목 내 수정한 곳 ( <-- 표시를 잘 보세요)
    export XMODIFIERS=@im=nabi <--
    export GTK_IM_MODULE=nabi <--
    export QT_IM_MODULE=nabi <--
    =======================================================
    *kde)
        if ! type -p skim > /dev/null 2>&1 \
          || grep -i -q "Autostart.*=.*false" $HOME/.kde/share/config/skimrc
        then
            nabi -wm -wait & <--
        else
    =======================================================
    *)
        nabi &  <--
    ;;
    


    case $tmplang in 내의 ko*) # Korean 항목내 수정부분 (역시 <--를..)
    elif type -p nabi ( <--[괄호 및 그안까지 타이핑하지 말것] )  > /dev/null 2>&1 ; then
    export XMODIFIERS="@im=nabi" <--
    =======================================================
    case $WINDOWMANAGER in
        *kde|*windowmaker|*wmaker)
            nabi -wm -wait & <--
        ;;
        *)
            nabi & <--
        ;;
    


  • ) # all other languages: 항목내 수정부분
    export XMODIFIERS="@im=nabi" <--
    
수정후 껐다 켜시면 끝.

  • 일반 $HOME/.xinitrc 파일 또는 $HOME/.xsession 을 사용한다면 그 파일 앞쪽에
    nabi &
    export XMODIFIERS="@im=nabi"
    
    를 추가 하면 됩니다. 또는 세션 관리자를 사용하는 데스크탑의 경우는 시작프로그램에 추가하는 방법도 있습니다. 물론 이렇게 나비를 띄우는 경우에도 환경변수는 위와 같이 프로그램을 실행하기 전에 설정될수 있도록 해야 합니다. KDE를 사용한다면 $HOME/.kde/env/nabi.sh 라는 파일을 만들고 거기에
    nabi & # 만일 나비를 시작할때 띄우고 싶지 않다면 이 라인은 빼셔도 됩니다.
    export XMODIFIERS="@im=nabi"
    
    이렇게 적어 넣으면 됩니다.

  • Archlinux
    /etc/profile.d/nabi.sh 파일을 설정하여 추가
    export XIM=nabi
    export XIM_ARGS=
    export XIM_PROGRAM=/usr/bin/nabi
    export XMODIFIERS="@im=nabi"
    export GTK_IM_MODULE=xim
    export QT_IM_MODULE=xim
    


    /etc/rc.conf 파일을 수정해줍니다. 순수 한글 환경 사용의 경우 LOCALE 부분만 ko_KR.UTF-8로 수정하면됩니다.
    LOCALE="ko_KR.UTF-8"
    


    영문 환경에서 입력기 자체만을 나비로 사용하고자 할 경우 /etc/profile.d/nabi.sh 파일에 LC_CTYPE만 추가 해줍니다.
    export LC_CTYPE=ko_KR.utf8
    


    이후 gnome 환경에서 시작 세션 부분에 nabi 설정.

6.2. 상태 정보 표시

  • SystemTray를 사용하지 않는 경우 아래와 같은 창이 보입니다.
  • GNOME: NotificationArea 애플릿(알림영역)을 사용하셔야 상태정보를 보여줍니다. 알림영역 애플릿을 패널에 추가하려면 GNOME 패널에서 마우스 오른쪽 버튼을 누르면 나오는 메뉴에서 더하기->유틸리티->알림영역 을 선택하시면 됩니다.
  • KDE의 경우는 SystemTray 에 자동으로 나타납니다.
  • WindowMakerhttp://icculus.org/openbox/2/docker/를 설치하시면 됩니다. apt-get install docker 로 설치하실수 있습니다.
  • XFCE에서는 설정도구->태스크바에서 알림영역: 트레이에 보이기를 선택하시면 됩니다.

6.3. 자판 설정

자판을 바꾸기 위해서는 한영 상태정보를 보여주는 아이콘에서 마우스로 오른쪽 버튼을 클릭하면 자판을 선택할 수 있는 메뉴가 나타납니다. 거기서 자신이 사용하고자 하는 자판을 선택하면 됩니다.

nabi-menu.png
[PNG image (12.77 KB)]

6.4. 아이콘 변경

자판 설정과 같이 상태 정보를 보여주는 아이콘에서 마우스 오른쪽 버튼을 클릭하면 나오는 메뉴에서 테마를 선택하면 아이콘을 변경할 수 있는 창이 나옵니다.

7. 사용 방법

  1. 한영 전환
    기본적으로 처음 시작 상태는 영문 상태입니다. 이 상태에서는 한글 입력이 안됩니다. 이것을 한글 모드로 전환을 해야 하는데 이 한영 전환방법은 Shift-Space 또는 한/영 키 입니다. 이때 부터 한글을 입력할 수 있습니다. 그리고 나서 다시 Shift-Space 또는 한/영키를 누르게 되면 다시 영문 상태가 됩니다.
  2. 한자 입력 방법
    먼저 한글로 입력하길 원하는 한자의 독음을 친후 한자키나 F9키를 누르면 선택할수 있는 한자 목록이 나오게 됩니다. 각 한자들 앞에는 숫자가 붙어 있는데 그 숫자를 누르면 바로 그 한자가 입력이 됩니다. 또는 좌우 방향키를 누르게 되면 선택 마크가 움직이면서 현재 선택된 한자를 보여 줍니다. 그 때 엔터를 치시면 선택된 한자가 입력됩니다. 현재의 한자 목록에서 원하는 한자가 보이지 않으면 space나 PgDn/Up을 눌러서 다음 한자 목록을 보실수 있습니다. 또 한자 입력을 취소 하시려면 Esc 키를 누르시면 됩니다. 또는 'hjkl'로도 움직일수 있습니다.

  3. 기호 입력 방법
    한글 자음(ㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋㅌㅍㅎ)을 하나 누른 상태에서 한자 또는 F9키를 누르면 기호의 목록이 나타납니다. 이때에도 한자의 경우와 마찬가지로 골라서 입력하시면 됩니다.

8. FAQ

  1. 한글 입력이 안됩니다, 어떻게 해야 하나요?
    보통은 환경 변수 설정의 문제인 경우가 많습니다. 일단 시스템에 문제가 있는지 없는지 확인하기 위해서 아래에 제시한 테스트를 하시면 빠르게 상황을 파악할 수 있습니다. 다음과 같은 순서를 따라서 해보십시오. 임의로 건너 뛰거나 순서를 바꿔서 입력하면 안됩니다. 반드시 아래에 제시된 순서대로 빼먹지 말고 입력하십시오. 일단 X가 뜨지 않은 상태의 tty에서 xinit을 실행합니다. 그러면 X 화면이 뜨면서 왼쪽 위에 터미널 화면만이 열립니다. 그럼 그 터미널에서 아래의 명령을 순서대로 치시면 테스트 하실 수 있습니다. 아래에서 $는 프롬프트를 나타내므로 입력하실 필요가 없습니다. 그리고 # 이후 부분은 설명을 위해 써 놓은 것이니 역시 입력 하실 필요가 없습니다.
    $ twm &                         # 윈도우 매니져를 띄우는 것입니다. twm 이 없다면 fvwm, wmaker, metacity 등을 입력해 보십시오.
    $ unset LC_ALL                  # 잘못된 환경 변수가 있을 경우를 대비해서 기존의 설정 값을 지우는 것입니다.
    $ export LANG=ko_KR.eucKR       # 자기가 사용하고자 locale을 설정합니다. 만일 유니코드 locale을 사용하고 싶다면 export LANG=ko_KR.UTF-8 이렇게 합니다.
    $ nabi &                        # 실제로 입력기를 실행하는 곳 입니다.
    $ export XMODIFIERS="@im=nabi"  # 자기가 사용하고자 하는 입력기를 지정하는 것입니다.
    $ export GTK_IM_MODULE=xim      # gtk2를 쓸때 입력 모듈이 다른 것으로 설정되어 있을 수가 있기 때문에 바꿉니다.
    $ mozilla or gedit or kedit     # 이제 실제로 자기가 한글을 입력하고자 하는 프로그램을 띄웁니다.
    
    실제로 나비를 사용하기 위해서 중요한 환경 변수는 LANG와 XMODIFIERS 이 두개 입니다. 이것만 제대로 설정이 되어 있으면 대부분의 경우 한글 입력에 지장이 없습니다. 이렇게 해서 띄운 모질라나 gedit, kedit에서 입력이 된다면 프로그램의 문제가 아니라 설정의 문제입니다.


  2. Nabi: Session: SESSION_MANAGER environment variable not defined이런 에러가 나는데 문제가 있는 것 아닌가요?
    이 메세지는 무시하셔도 좋습니다. Session을 지원하는 윈도우 시스템일 경우 SessionManager와 연결이 되지만 SessionManager 보다 nabi가 먼저 실행이 되거나 SessionManager 가 없는 경우는 이런 Warning이 나옵니다. 물론 입력기의 실행에는 아무런 지장이 없습니다.


  3. Nabi: Can't load config file이라는 메세지가 나옵니다.
    nabi의 설정을 저장하는 디렉토리 입니다. 없으면 기본값으로 실행되기 때문에 그 Warning은 무시하셔도 됩니다. 또 문제가 생기면 설정 디렉토리인 $HOME/.nabi를 지워버리는 것도 방법입니다.


  4. 한컴리눅스 오피스에서 입력이 안되요
    /usr/local/HancomOffice2/Common/ hcoffice_init 파일의 99번째 라인의 export ims="-im nabi"수정하면 나비로 한글 입력 가능합니다. 한컴 오피스 3에서는 121번째 라인입니다. 수정하니 잘 되네요 -- 한컴오피스 게시판에서 --


  5. 한영키가 작동하지 않아요
    $HOME/.Xmodmap 파일에 아래와 같은 내용을 추가하시고 X를 다시 시작하시면 됩니다. 만일 $HOME/.Xmodmap 파일이 없다면 아래 내용만 넣고 새로 만드시면 됩니다.
    ! for using hangul key
    keycode 121 = Hangul_Hanja
    keycode 122 = Hangul
    



  6. 나비를 종료할 수 가 없어요.
    나비 0.13이후의 버젼 부터는 SessionManager를 지원합니다. 그리고 나비의 특성을 respawn으로 설정해서 나비가 종료하면 SessionManager가 자동으로 나비를 다시 띄우도록 설정이 되어 있습니다. 따라서 나비를 종료하거나, kill해도 SessionManager에서 다시 띄우기 때문에 종료하지 않는 것 처럼 보입니다. 나비를 종료하기 위해서는 메뉴에서 프로그램->기본설정->고급->세션 을 선택해서 세션 프로퍼티 창에서 "현재 세션"을 선택하고 거기서 나비 프로세스를 찾아서 "지우기" 버튼을 누르고 "적용" 버튼을 누르시면 나비가 종료하게 됩니다. 만일 나비 0.15 버젼 이상을 사용하시면 해결이 됩니다.


  7. 나비와 아미를 같이 사용할수 있나요?
    나비(Nabi)는 ami와 충돌하는 프로그램이 아닙니다. nabi를 사용하기 위해서 굳이 ami를 삭제하거나 종료해야 하는 것이 아닙니다. ami가 떠 있는 상태에서도 nabi를 띄우고 사용하고 싶은 프로그램에 환경 변수 XMODIFIERS="@im=nabi" 가 설정되어 있으면 그 프로그램은 nabi로 한글 입력이 가능합니다.


  8. 세벌식 두벌 자판은 무엇인가요?
    나비의 세벌식 두벌자판은 자판 배열은 두벌식이고 세벌식 오토마타를 사용한 것으로 shift와 자음을 함께 누르면 종성으로 인식되어 입력 할수 있습니다. 두벌식 사용자가 세벌식 오토마타를 테스트 하기 쉽게 하기 위해서 만든 자판 입니다. 도깨비불현상은 나타나지 않겠지만 쉬프트를 기존의 두벌식자판보다도 훨씬 많이 치므로 손이 많이 피곤해질 수 있습니다.


  9. gaim에서 한글 입력할때 마지막 글자가 잘립니다.
    이것은 gaim의 버그입니다. 이 문제를 해결하는 패치가 gaimSourceForge 프로젝트 페이지에 여러번 등록 되었지만 아직 적용되지 않고 있습니다.


  10. 영문 데스크탑을 사용하면서 한글 입력만 가능하게 하고 싶어요
    나비 0.14 이상 버젼에서는 en_US.UTF-8 locale을 지원하기 때문에 en_US.UTF-8 을 사용하면서 나비를 사용하시면 영문 데스크탑을 사용하면서 한글 입력이 가능합니다. 또는 LC_CTYPE만 한글로 설정하는 방법이 있습니다. 아래와 같이 환경 변수를 설정하면 됩니다.
    export LANG=C # 또는 en_US
    export LC_CTYPE=ko_KR.eucKR # 또는 ko_KR.UTF-8
    
    gettext에서 출력하는 메시지만 영문으로 보이게 하는 방법도 있습니다. 이 경우는 아래와 같이 환경 변수를 설정하면 됩니다.
    export LANG=ko_KR.UTF-8
    export LC_MESSAGES=C
    


  11. 나비에서 세벌식을 선택해도 세벌식으로 바뀌지 않아요
    기본 입력기로 imhangul을 사용하기 때문입니다. 그런 문제는 Gtk+2 어플리케이션에서 발생하는 것으로 세벌식을 사용하고 싶다면 GTK_IM_MODULE 환경 변수를 세벌식으로 설정하셔야 합니다. GnomeKorea:imhangul을 참고하세요

  12. UTF-8 locale에서 firefox로 플래시가 있는 페이지를 로딩할때 느려요
    mlterm이나 firefox 에서 플래시가 있는 페이지를 로딩할때 느린 경우가 있습니다. 이것은 XFontSet을 사용하는 프로그램에서 FontSet을 로딩할때 오래 걸리기 때문입니다. 필요한 font를 모두 갖추지 못한 경우 시간이 걸리는 것으로 알려져 있습니다. ksc5601, jisx0208, gb2312, jisx0201, iso10646 인코딩의 폰트를 모두 설치해야 합니다. 다음 링크를 참고하세요: http://kldp.org/node/76935

  13. 나비를 실행하면 다음과 같은 에러 메시지가 나와요
    (nabi:4015): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
    
    (nabi:4015): Gdk-CRITICAL **: gdk_window_set_icon_list: assertion 'GDK_IS_PIXBUF (pixbuf)' failed
    
    (nabi:4015): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion 'pixbuf != NULL' failed
    
    (nabi:4015): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion 'pixbuf != NULL' failed
    
    이 문제는 0.17 이전 버전에서 발생하던 문제로, GdkPixbuf에서 svg파일을 로딩하지 못하여 출력하는 메시지입니다. 나비를 0.17이상으로 업그레이드하거나 librsvg의 GdkPixbufsvg 로딩 모듈을 인스톨하면 됩니다. debian같은 경우에는 librsvg2-common 패키지를 인스톨하면 됩니다.

9. 알려진 문제점

  • Qt 3.1.2에서 Qt의 버그로 한글 상태에서 영문입력이 안됩니다. qtconfig에서 입력 방법을 선택하여 OverTheSpot을 이용하는 방법이 있습니다.
  • Qt 3.2.1, 3.2.2에서 TTF를 사용할때 한글 입력시 프로그램이 멈추는 경우가 있습니다. 다음의 패치를 사용하면 됩니다. @qt-x11-free-3.2.2-qscriptengine-hangul-shaper.patch.txt (1.78 KB)
  • KDE-3.1.x 버젼 에서는 Kate에서 한글 입력이 안됩니다. Kate가 제대로 구현되지 않았기 때문입니다. 3.1.94(KDE 3 beta2)에서는 한글 입력됩니다.
  • Qt 3.X에서 BackSpace로 글자를 지울때 마지막 글자가 사라지지 않는 것은 Qt의 버그입니다. 다음의 패치를 적용하면 해결됩니다. @qt-x11-free-3.2.3-imevent-backspace.patch.txt (657 Bytes)
  • Gtk 2.2.4를 사용할 경우 GNOME림구역에서 CPU를 너무 많이 사용하여 느려진다. Gtk를 최신 버젼으로 업그레이드 해야 합니다. 또는 우선 피하는 방법으로 nabi의 아이콘을 한번 클릭하면 됩니다. 이 [http]링크를 참고 하십시오. ([http]이 문제를 해결하는 패치)

  • EUC-KR locale에서 세벌식 가운데 점이 입력 안됩니다. 이것은 XFree86 의 버그로 CharSet conversion에 문제가 있는 것 같습니다. UTF-8 locale에서는 문제가 없습니다.
  • NumLock 이 켜진 상태에서 한글 입력이 안됩니다. Debian sid에서 주로 발생하는 문제 같습니다. 이경우 X에서 NumLock키가 잘못 설정되어 있어서 그렇습니다. xmodmap을 아무런 인자 없이 실행해 봐서 다음과 같은 결과가 나오면 정상입니다.
    $ xmodmap
    xmodmap:  up to 2 keys per modifier, (keycodes in parentheses):
     
    shift       Shift_L (0x32),  Shift_R (0x3e)
    lock        Caps_Lock (0x42)
    control     Control_L (0x25),  Control_R (0x6d)
    mod1        Alt_L (0x40),  Alt_R (0x71)
    mod2        Num_Lock (0x4d)
    mod3
    mod4        Super_L (0x73),  Super_R (0x74)
    mod5
    
    그러나 Num_Lock 이 mod2로 나오지 않을 경우는 $HOME/.Xmodmap 파일에 다음과 같이 추가하면 됩니다.(없다면 생성해서 다음 부분만 추가하십시오)
    clear Mod2
    add Mod2 = Num_Lock
    
    Debian Sid에서는 set-language-env에서 자동으로 $HOME/.Xmodmap 파일에 잘못된 Num_Lock 설정을 추가한다고 하니까 주의 하십시오.
  • Opera 에서 한글 사용 Opera를 static으로 컴파일 된 것을 사용할때 한글 입력이 안되는 경우가 있다. 이것은 Opera가 한글 입력을 제대로 지원하지 못하는 Qt가 static으로 포함되어 컴파일되었기 때문으로 생각하고 있습니다. 그래서 Opera를 dynamic으로 컴파일 된 버젼을 사용하시면 한글 입력이 가능하다고 합니다.

10. 관련 버그

http://bugzilla.gnome.org/show_bug.cgi?id=91216
이 문제는 focus out일때 preedit string을 commit 하지 않아서 마지막 글자를 잃어버릴 가능성이 있습니다. 위 버그질라에 따르면 일본인들은 focus out event에서 commit이 일어나는 것을 불편하게 생각한다는 것을 알수 있는데 우리나라의 InputMethod 사용법과 정면으로 부딪히는 부분입니다.

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=166845 http://bugzilla.gnome.org/show_bug.cgi?id=91216



ID
Password
Join
The luck that is ordained for you will be coveted by others.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2012-12-24 18:05:30
Processing time 0.0239 sec