  ѱ Է±,  (Byeoroo: An X11R6 Input Method Server for
  the Korean Language)

  , jhpark@entropy.kaist.ac.kr
  Snapshot on 970905

  1.  ϼ

   ȹ  ߿ ݱ    ϴ.

     Է Ÿ
        XIMPreeditPosition, XIMPreeditArea, XIMStatusArea.  (over-the-
        spot, off-the-spot)

     
        ι ѱ, {, ʱ׷} 390  ѱ,  
         ѱ,  ,  :-).

     Է 
        , .

     , ȣ
         ڵ Է,  忡    Է, 
        忡 ܾ   Է, ޴ ̿ Է.

     ⺻ 
         .

       ϴ.

     Է Ÿ
        XIMPreeditCallbacks, XIMPreeditNothing, XIMPreeditNone.  (on-
        the-spot, root, none)

     
        ʱ׷   ѱ, {, ʱ׷} 389  ѱ.

     ⺻ 
        Standard colormap input context attribute (XNStdColormap) ,
        Release 6 session compliance.

     Ÿ
        ٴ Է¿ history , Man page,  
        distribution.

  2.  Ұ

   X11R6 ϰ ִ Input Method Protocol ϴ ѱ
  Է±(input method server)Դϴ.   Ximp, Xsi protocol
   ʽϴ.

  3.  

   input method server Դϴ.  ׷Ƿ, , input client
  Ǳ  Ǿ ־ մϴ.  X11R6 Է±Ⱑ input
  client ߿ Ǵ (ڵ) Ŭ̾Ʈ Է± 
   ִ ī ϰ ֽϴ.   ׷  ϴ
  Ŭ̾Ʈ   Ͽ װ  Ŭ̾Ʈ, Athena Text
  widget  Ἥ Է±⿡ ϶    ִ
  Ŭ̾Ʈ 쿡, Է±Ⱑ ߿ Ǵ  ϴ.
  3.1.  Ű 

  Ʈ

  o  / ȯ Ű Shift-space,

  o   θ Ű Ctrl-Shift-space,

  o   ȯ Ű Mod1-F9 (Alt-F9 Ǵ Meta-F9),

  o   忡  Ŭ̾Ʈ  Ű Shift-Return

     Դϴ.  Ű ٲٴ , ``ҽ'' մϴ.

  3.2.  

  ǿ Ÿ ׸񺰷  ϰڽϴ.

  3.2.1.  Է 

  Է  `' `'   ֽϴ.  `' ¿ ѱ
  ڰ ϳ ϼ  Է Ŭ̾Ʈ ڰ (commit)˴ϴ.
  `' ¿ ڰ Էϴ  Է±Ⱑ ϰ ִٰ,
  Return̳ Shift-Return    Ŭ̾Ʈ մϴ.

   簡 string conversion callback  ʱ , `'
  ¿ ܾ   Է մϴ.

  3.2.2.  ѱ ǰ  

   õ   ϰ Ű-ڿ ǥ  ݴϴ.  
  ̸ ǥõ  콺 Ŭϸ,   ִ ϵ 
  ְ, ϴ  ̸  ͸   ư   
    ֽϴ.

  3.2.3.   ڵ

   ڵ带 16 Է  ֽϴ.  ڵ带   Է 
   ڵ忡 شϴ ڰ  ̺ Ÿϴ.  Ÿ ڸ
  ԷϷ ̺ 콺 ŬϽʽÿ.

  3.2.4.  ޴ Է

   ư ,   ȣ  ɴϴ.  ϴ 
  ͸ ΰ ư  ׿ شϴ ڵ Ÿϴ.  ڸ
  Ŭϸ  ڰ Էµ˴ϴ.  ڸ  ִ 츦 ַ
  `' ʽÿ.

  3.3.  ҽ (Resources)

  3.3.1.  ø̼ ҽ (Application Resources)

     transport (class Transport)
        Է±Ⱑ ϴ transport mechanism մϴ.  ڼ 
        Byeoroo  ֽϴ.

     korEngToggleKey (class KorEngToggleKey)
        / ȯ Ű մϴ.

     chineseConversionKey (class ChineseConversionKey)
         ȯ Ű մϴ.

     popupKey (class PopupKey)
         θ Ű մϴ.

     flushKey (class FlushKey)
         忡   Ŭ̾Ʈ  Ű մϴ.

     searchPath (class SearchPath)
        簡 ʿ ϴ ϵ ã ε ݷ(:) 
        Դϴ.

     defaultKeyboardDescriptionFile
        (class DefaultKeyboardDescriptionFile)" Input context ó
           ѱ  ϴ Դϴ.

     numberOfMenuItems (class NumberOfMenuItems)
        ޴ Է   Ÿ ׸ Դϴ.

  3.3.2.  Widget   (Widget Hierarchy)

  [ ߿ ڽϴ.  ϴ editres ˾ .  ]

  3.4.   

  3.4.1.  Ű-ڿ ǥ (Key-String Map)

  Ű-ڿ ǥ Ȯڴ .ksmԴϴ.  qwertywhole.ksm ø 
   Ǿ ִ ܹ    ̴ϴ.

  ! ۵Ǵ  õ˴ϴ.  Implicit:   ڿ 
    Ű  ٿϴ.   ,

       Implicit: ~Lock
       grave ~Shift: "a"
       grave  Shift: "b"
       Implicit: Lock
       grave       : "b"

  

  grave ~Shift ~Lock: "a"
  grave  Shift ~Lock: "b"
  grave         Lock: "b"

   ؼ˴ϴ.

  ݷ(:) ʿ Ű ϰ, ݷ ʿ  Ű Է
  ڿ մϴ.  Ű  

       KEYSYMNAME [MODIFIER ...]

  Դϴ.  KEYSYMNAME <X11/keysymdef.h> ִ Ű ɺ տ پ
  ִ XK_  Դϴ.  MODIFIER Shift, Lock, Control, Mod1,
  Mod2, Mod3, Mod4, Mod5  ϳԴϴ.  PC , Mod1 
  AltŰ ˴ϴ.  MODIFIER    տ ~ ̸  modifier
   ƾ Ѵٴ  մϴ.   

       a        : "a"
       2 ~Shift : "2"
       2  Shift : """

  ̶ Ǿ ִٰ սô.  a Ű ,  modifier  ֵ
  , a , 2 Ű , ٸ modifier  , Shift
    ",    2 ɴϴ.

  ڿ ֵǥ(") ѷμ ϴ.   ó ֵǥ
  ֵǥ ȿ   ֽϴ.

  3.4.2.     (Keyboard Description File)

  ּ ݷ  Ű  ``Ű-ڿ ǥ'' ϴ.

  ݷ ʿ ѱ ڸ ڰ ɴϴ.  ڴ ϰ 
  ڿ شϴ keysym ̸  ָ ˴ϴ.

  ѱ ڸ   ѱ keysym  ڸ  12345
  ϳ Ÿϴ.  ѱ keysym/      ,
  ӵ ѱ keysym  Ҹ ٿ ص ˴ϴ.   ,

       p ~Shift: Hangul_E 14

  

       p ~Shift: Hangul_E 1 Hangul_E 4

   ϴ.  .kdf Ͽ  ִ keysym  Hangul_ ϴ
   ʼ ̰, Hangul_J_ ϴ   Դϴ.
  (X-Window Hangul_ ʼ  ϰ ִ  ƴմϴ.)

   12345   ϴ.

     1   ڸ ܵ ʼ̳ ߼̳  ̷.

     2   ڸ  ڸ  ù° ̸,  ڸ ܵ
        ʼ̳ ߼̳  ̷  .

     3   ڸ ܵ   ְ  ڸ  ù°
        ڰ   ִ.

     4   ڸ  ڸ ι° ̰ų  ڸ̴.

     5   ڸ  ι° ̰ų ̴.

  ⼭  ڸ `' `'ó  ٸ ڸ پ ִ 
  ϰ,  `'ó     پ ִ Դϴ.

  簡 ѱ  ,  Ű شϴ ڸ/ 
  տ ʴ õ , ϴ    
  ϰ,   ڸ ϼմϴ.

  3.4.3.   Ű  Ŀ ؼ

   ̳ HanX ޸, ѱ  keycode մϴ.  
      keycode ȯϴ    
    ؼ մϴ.

  3.4.3.1.  Keycode ΰ?

  Keycode Ű ϳ ų ö     0
  255 Դϴ.  Ű Ű keycode    
  ϸ, ٲ ʽϴ.

     ٸ  ֽϴ.  ׷   Ŭ̾Ʈ
  keycode ٷ  ʰ װ keysym ȯؼ ϴ.  Keycode
  keysym ( keyboard mapping) Ŭ̾Ʈ  ٲ 
     Ǿ ִ  Ŭ̾Ʈ  ޽ϴ.
  ׷ ׷  startup script QWERTY DVORAK ٲ۴ٵ 
   ϰ   ʽϴ.

  3.4.3.2.   keycode °?

  Keysym ѱ  ߴٰ սô.     
  ణ ٲٰ ;, `a' `b' ڸ ٲٰ սô.  (⼭
  ϴ  ,  ``ѱ ǰ  '' ϴ 
  ǰ  ٸϴ.)  ׷ (ι ) ѱ Ű `' `'
  ڸ ٲϴ.

  ׷ keycode ѱ  ϸ keyboard mapping ٲ۴ٰ ѱ
   ޶ ʽϴ.

  3.4.3.3.  Keycode  ϴ°?

  ``Keycode ΰ?'' keycode  ٸٰ Ƿ,
     ѱ ڸ ٷ keycode ų  ϴ.
  .kdf Ͽ keycode  Ű شϴ keysym , װ
  о   keysym keycode ٲߴϴ.    ʿ keysym
  keycode  (Ϲ  Ŭ̾Ʈó) keyboard mapping 
  ޾Ƽ  ˴ϴ.  ֳ ϸ, ڰ ǿ ѱ  ٲ
    .kdf   о ̱ , keyboard mapping
  ٲ ڿ ѱ  ٲ   Ǳ Դϴ.  ׷ 
  ó Ǿ  keyboard mapping  ϰ 鼭 .kdf
     ϰ ִ  ϴ.

  3.4.3.4.  ٸ  ǰ 

  Keyboard mapping QWERTY ٸ  ٲٰ  簡 
   ٲپ մϴ.  ̷ ϸ  .kdf,.ksm  ٲ
  ʰ ٸ     ֽϴ.

  縦 鼭 ٸ     ִ     ֽϴ.
  ù°, ϴ keyboard mapping ٲ   keyboard mapping 
    .kdf, .ksm   Դϴ.  °,  
  keyboard mapping ٲ  ϴ  .ksm Ϸ 
  Դϴ.   ó   raw.ksm  Ǿ ֽϴ.  
   ݵ ƹ ͵  ʾƾ Ǵ  ƴմϴ.  
  Է Ŭ̾Ʈ 翡 ڸ raw.ksm ȿ Ÿ 
   ϴ.  Shift-space ι ñ ٶϴ.

  3.4.4.  ھ  ھ  

  ھ (.cd)    Ǿ ֽϴ.

       <ѱ > < > [< > ...]
       <ѱ > < > [< > ...]

   ̴ ϳ ̻ (white space) ϴ.  ѱ 
   ó ; մϴ.   ó  ʴ    ࿡ 
   ֵ˴ϴ.     () Ǿ  ʿ
  ϴ.

  ھ  ׳   ,  (index)  ϴ 
  մϴ.    Ȯڴ .cdiԴϴ.    ý byte
  ordering   ޶ , ٸ ý  ״ 
     ֽϴ.

  3.5.  ɼ

   Ϲ X-toolkit  ɼ  մϴ.   ܿ  
  ִ ɼ  ϴ.

     -transport
        transport ҽ ϴ Ͱ ȿ ϴ.

     -kdf
        defaultKeyboardDescriptionFile ҽ ϴ Ͱ ȿ
        ϴ.

     -sortcd
         ɼ ڿ .cd  ̸ ,   Ʈϰ 
         ϴ.

  4.   ϴ Ŭ̾Ʈ

  X11R6 Athena Widget Set  xclipboard xedit  
  մϴ.   α׷ 縦  ϱ  ҽ  
   ϴ.

       ______________________________________________________________________
       !!
       !! Xedit
       !!
       Xedit*international: true
       Xedit*fontSet: -*-*-*-r-*--24-*
       Xedit*inputMethod: byeoroo
       Xedit*preeditType: OverTheSpot
       !!
       !! XClipboard
       !!
       XClipboard*international: true
       XClipboard*fontSet: -*-*-*-r-*--16-*
       XClipboard*inputMethod: byeoroo
       XClipboard*preeditType: OffTheSpot
       ______________________________________________________________________

  ̰  ~/.Xdefaults ϺԴϴ.

  5.   

   app-defaults  ý app-defaults 丮 ġϵ
  Ǿ  ʽϴ.  (ġ ŵ  ϴٸ.)  app-defaults
   ġ ʰ 縦 Ϸ XAPPLRESDIR ȯ  Byeoroo
   ִ 丮  ־ մϴ.    Byeoroo 
  丮 ,

       $ export XAPPLRESDIR=./

  ̷ մϴ.  XAPPLRESDIR  丮 ݵ /  Կ
  Ͻʽÿ.

  Byeoroo searchPathҽ,   (.kdf), Ű-ڿ
  ǥ(.ksm),  ܾ (.cd)  ִ θ ؾ մϴ.

  libXimd.so.1.0  shared library ġǴ  ġ  
  쿡 LD_LIBRARY_PATH libXimd.so.1.0 ִ path ԽѾ
  մϴ.

  縦 ų ,  input client   ȯ 
  LANG ѱ Ÿ ؾ մϴ.  

  $ export LANG=ko
  $ byeoroo

   ǰڽϴ.

  HanX ġǾ ִ ¿ 糪  Ŭ̾Ʈ  
  ȯ  HANX_INPUT_DISABLE 1  մϴ.

       $ HANX_INPUT_DISABLE=1

  6.  

  6.1.   

  KeyRelease event  ʴ  , ڵ带 Է  
  ڵ忡 شϴ ڸ   ʰ, ڵ Է ü Ұմϴ.

  6.2.    

  o  Release 6.3 Athena Widget Set off-the-spot Ÿ  
     preediting area ̻ϰ ϴ װ ֽϴ.  Athena Widget
     Set  α׷   over-the-spot Ÿ  
     ϴ.

  o  XIM_DESTROY_IC , XIM_CLOSE request   ʴ input
     client ϴ.  ׷,    input context   
     찡 ֽϴ.  ̰ kinput2   Ǵ 
     ϴ.  xclipboard ߴٰ ݴٰ ϸ鼭 ps 
     Ȯ , kinput2 (input context ϳ  ) ޸
     ũⰡ þ⸸ , Ŭ̾Ʈ  ޸𸮰 ٽ 
     ʽϴ.

  7.  

  7.1.   ڵ

     AdoptedSh*
        adoptedShellWidgetClass ϴ Դϴ.  Software
        Research Associates, Inc., Japan Makoto Ishisone 
        kinput2  ִ Դϴ.

     JohabLabel*
        johabLabelWidgetClass ϴ Դϴ.   Ʈ 
        Athena Widget Set  ִ Label*   Դϴ.

     hangul.*
        澾  ҿ  ִ ѱ ó ԼԴϴ.
     textActions.m text_actions[]
         迭(array) Athena Widget Set ִ TextAction.c 
        ִ Դϴ.

  7.2.   ֽ е ()

   <mailto:jukwon@nuclina.hoseo.ac.kr>, Joseph Kim
  <mailto:root@adoramus.joseph.per.kr>, ȣ
  <mailto:junker@jazz.snu.ac.kr>, ö
  <mailto:quantum@brain.tgmi.co.kr>, 
  <mailto:jshin@pantheon.yale.edu>,  <mailto:kgs@www.knto.or.kr>

   ߸    𸣰ڽϴ.  ׷ в ˼ϴٴ
   帳ϴ.

  8.  ۱

   , `` ڵ''  ,   ڵ,
  Ʒ   ٿ , GNU General Public License ϴ.

  Copyright (C) 1997  Park, Jae-hyon.

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; see the file COPYING.  If not, write to
  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.

  You may contact the author by:
     e-mail:  jhpark@entropy.kaist.ac.kr
       mail:  Park, Jae-hyon
              Physics Department, 305-701
              Korea Advanced Institute of Science and Technology
              Taejon, South Korea

