# gcin 使用手冊

eliu
`<aaa@bbb.ccc>`
v 1.4.3-pre 2008-08-08

本文使用 UTF-8 編碼，請使用支援 UTF-8 編碼的編輯器，例如：gedit。

## 1. 各平台上的安裝方式

### 1.1. Mandrake

    # urpmi gcin-X.X.X-liu_mdk.i586.rpm

或

    # rpm -i gcin-X.X.X-liu_mdk.i586.rpm

如果是用 Mandrake， rpm 安裝完成之後會自動修改 /etc/X11/xinit/XIM ，在 login 時 會執行 gcin 而不是 xcin。 原來的 /etc/X11/xinit/XIM 會被重新命名為 /etc/X11/xinit/XIM/XIM.orig.gcin 。在 rpm -e 解除安裝時不會自動還原。

在 Mandrake 10.1 中，會自動修改 /etc/sysconfig/i18n 與 /usr/X11R6/bin/crxvt 把原 來給 SCIM 用的設定改成給 gcin 用。

其他的 distribution 可能會失敗, 因為檔案位置或內容不一樣. 請自行修改 X 中有關 的 XIM startup script，把原來執行 xcin 的部份改成執行 gcin。

### 1.2. Debian

#### 1.2.1. gcin 1.4.2-1~bpo40+1 的相依性

    libatk1.0-0 (>= 1.12.2), libc6 (>= 2.3.6-6), libcairo2 (>= 1.2.4),
    libfontconfig1 (>= 2.4.0), libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>=
    2.8.0), libpango1.0-0 (>= 1.14.8), libx11-6, libxcursor1 (> 1.1.2),
    libxext6, libxfixes3 (>= 1:4.0.1), libxi6, libxinerama1, libxrandr2,
    libxrender1, libxtst6, libgtk2.0-bin

#### 1.2.2. gcin 的安裝方式

    # aptitude install gcin

或

    # dpkg -i gcin_X.X.X-X~X_iX86.deb gcin-qt3-immodule_X.X.X-1~X_iX86.deb

### 1.3. Fedora

gcin 的 FC3 FC4 FC5 FC6 (Development) 等版本，都已經正式進入 Fedora Extras 了。因此，直接使用 yum install gcin 即可。至於 REHL4 的 rpm 則仍可在 gcin 同好會的 下載情報區 裡下載。

### 1.4. 下載 tarball 自行編譯 gcin

如果使用 .tar.bz2 安裝者， table path 是 /usr/local/share/gcin/table ，而不是 /usr/share/gcin/table ，預設的 compile flags 是 -g，這樣如果 gcin 如果有 coredump 時可以方便 debug 且回報給作者 (gcin 的 source code 不要 remove 掉)，不過 compile 出來的可執行檔的大小大很多，如果不喜歡，可以在 ./configure 後修改 config.mak ，把 OPTFLAGS=-g 改成 OPTFLAGS=-O 。

#### 1.4.1. gcin-x.x.x.tar.bz2 的安裝步驟 (適用於各平台)

    $ tar xvfj gcin-x.x.x.tar.bz2
    $ cd gcin-x.x.x
    $ ./configure
    $ make
    su as root
    # make install
    logout & login

由 .tar.bz2 需要 install libgtk+2.0_0-devel & libqt3-devel 這兩個 .rpm，不過各家的名字可能不太一樣，可能要找一下。另外，你還需要 install pkgconfig 這個 .rpm 。

#### 1.4.2. 在 Debian 中自行編譯 gcin

    # apt-get update
    # apt-get build-dep gcin
    # apt-get source gcin
    # cd gcin-X.X.X（此處填入 gcin 的版本號）
    # dpkg-buildpackage -b

#### 1.4.3. 編譯自己的 gcin rpm

1. 安裝 libgtk+2.0_0-devel 這個 rpm。

2. $ tar jxvf gcin-x.x.x.tar.bz2 建立編譯目錄/檔案

3. 執行 .tar.bz2 內的 gcin-0.x.x/setup-rpm，這個 shell script 會幫你把 environment 設定好。

4. $ cp gcin-x.x.x.tar.bz2 ~/rpm/SOURCES

5. 在 gcin-x.x.x 裏面執行./configure 完後，會有一個 gcin.spec (這是給 Mandrake 用的，其它的 distribution 可能要稍微修改一下。)

6. # rpmbuild -ba gcin.spec (等 compile 完，就可以在 ~/rpm/RPMS/i586 看到你的 .rpm)

## 2. 使用 gcin

### 2.1. 介面簡介

按 ctrl-Space 叫出 gcin 視窗後，在第一排的注音輸入的按鈕 (button) 按滑鼠右鍵 右鍵可以叫出 gcin-setup window 設定視窗； 按 mouse 左鍵可以叫出符號輸入視窗。

### 2.2. 詞音輸入法

- 由於 一 與 不 同音字詞過多，輸入此兩字的注音應該以口語發音為主。 譬如,輸入 不會 , 不 應該輸入第2聲。

- 在詞音中按向上鍵可以查詢近音字，如 ㄥㄣ ㄓㄗ

- 當輸入一個詞的前兩個字的注音，就會跳出選詞的視窗,此時可以按 shift + 數字來 選詞，也可以不予理會,當輸入下一個字時，視窗會自動關閉。 你可以在 gcin 設定中 把這項功能關掉。

- 如何加入新詞？把 cursor (游標) 移至要存的詞句的開頭，按下 shift-Enter，則會自 cursor 所在位置存到編輯區的結尾，cursor 也會自動跳到結尾，方便繼續輸入。

- 標點符號與特殊符號可不可以存成詞？只要字有在注音表內就可以存成詞，請參考前面的說明，支援半型字。

- 在詞音中按 control-u 可以把整個編輯區的內容清除。

- 如果加錯詞怎麼辦？按滑鼠右鍵叫出設定視窗後，使用「詞庫編輯」的功能，你剛才加的詞在檔案最後。修改或刪除成正確的，輕聲是 '1'。在 gedit 中要用 UTF-8 儲存，不要弄成 Big5 了。

- 你可以在注音表中自己加入或刪除想要的符號或字

    $ cd ~/.gcin
    $ phod2a pho.tab > pho.tab.src  (轉成文字檔)
    $ gedit pho.tab.src
    $ phoa2d pho.tab.src            (轉成 gcin 的 pho.tab)

### 2.3. 詞音標點符號輸入

取發音的第一個注音符號 + 輕聲(‧) or 1/2/3/輕 聲 如果要輸入注音符號, 就按向下鍵或空白鍵去選

      ㄐ   。  (句點)
      ㄉ   ，  (逗號)
      ㄇ   ：  (冒號)
      ㄨ‧        ？  (問號)
      ㄈ   ；  (分號)
      ㄊ   ！  (驚嘆號)
      ㄊ   他
      ㄊ   她
      ㄊ‧        他 (由於！的注音是ㄊ，如果不想造成困擾，就用這一個。)
      ㄊ‧        她
      ㄋ   你
      ㄋ   妳
      ㄉˋ 、  (頓號)
      ㄉˊ ‧  (點)
      ㄑ‧        ＄  (錢)
      ㄒ‧        ＊  (星)
      [     『
      ]     』
      [     「  (直接按中括號 '[' ，這個最容易使用)
      ]     」  (直接按中括號 '[' ，這個最容易使用)
      ㄌ‧        了
      ㄌ2  –  (連接號)
      ㄌ    …  (省'略'號)
      ㄌ   了
      ㄇ3  《  (書'名'號)
      ㄇ4  》
      ㄆ4  —  (破折號)
      ㄒ   ℃  (攝氏 Celsius)
      ㄒ2  ㏄  (毫升)
      ㄉ˙ 的
      ㄍ   個
      ㄍ‧        ♂  (公)
      ㄇ‧        ♀  (母)
      ㄇ‧        嗎
      ㄇ‧        麼

酷音輸入 的 shift + ",./;'" 也可以用 現在滑鼠的指標移到符號視窗的按鈕，約一秒鐘會顯示對應的注音按鍵提示，方便學習。 使用許氏鍵盤者某些符號會不能用，例如 '。' ，這是許氏鍵盤先天的問題。

要輸入「」『』《》 還有一種方法就是，用 [ ] 兩個鍵，輸入以後可以用空白鍵選擇。 在詞音中可以輸入中括號 [] ，由於詞庫中 [] 有定義各種括號、引號及書名號的組合，這邊就可以用預選詞的方式來選擇你要的括號。

gcin 0.8.8 後的版本可以用注音輸入半/全形 數字 (0..9 及減(-)) 及 用 [] 鍵輸入 '()[]{}'，現在也可以加入含有數字的詞，譬如：「7月, 5點, 3個」。你也可以用這來儲存電話號碼，只要用注音輸入姓名，然後用 shift 選就可以了。例如：可以加入「周潔輪：0935-123456」。

### 2.4. 自訂符號表

如果要修改符號輸入視窗，編輯 ~/.gcin/symbol-table ， gcin 會偵測檔案是否有改變， 如有變動就自動重新載入 symbol-table 這個檔。

如要修改 Alt-Shift-key 送出的字串，修改 ~/.gcin/phrase.table 即可。

### 2.5. gtab 輸入法

#### 2.5.1. 行列輸入法說明

From cherico.bbs@ptt.cc:

行列同時輸入Unicode中所有的漢字， 包括簡體，繁體，日文漢字等。

http://home.pchome.com.tw/web/cherico/array-utf8.png

ar30.cin ar30.gtab 和簡體字根表：

http://home.pchome.com.tw/web/cherico/ar30utf8.tgz

已經變成 gcin 內建的行列輸入法 table

葉光哲先生整理的行列 30，支援 CJK 七萬餘字， 目前已是 openvanilla 預設的行列輸入法表格 （根據行列輸入法發明人，廖明德先生提供的對照檔製作而成） openvanilla 的行列為了實作簡碼功能, 拆成三個檔案… 現在葉光哲先生為 gcin 整理成一個 cin 檔（有支援簡碼）, 可在此處下載:

http://www.calno.com/moto/gcin/cin/ar30.cin.bz2 http://www.calno.com/moto/gcin/cin/ar30.gtab

#### 2.5.2. gcin 的行列 & 倉頡(.gtab) 可不可以輸入詞 ?

倉頡、行列輸入法中，現在可以直接輸入 linux，就可以跑出 linux，其餘的輸入法可以自己加到 .cin 後重新執行 gcin2tab。還有 (gnome kde gaim gcin xmms xine gedit kate kedit adsl hbo tvbs dvd vcd lcd)

新加入的 keys 最好不要與原有的重複，如果原有的本來就重複，那就沒關係。

只要把詞定義在 .cin 後面即可，然後執行上述的步驟，以下是幾行 examples

    ...
    tw 台灣
    down 下載
    talk 聊天
    net 上網

#### 2.5.3. 那可不可以與單字重覆定義按鍵呢？

可以的，在按空白鍵後就可以選字 or 詞。

#### 2.5.4. gcin 有嘸蝦米輸入法可用嗎？

以下的 嘸蝦米 table 僅供測試用，如果有長期使用，請購買合法版權。 download http://edt1023.sayya.org/misc/noseeing-2.tar.gz (正體中文) (因為 .gtab format 有變，裏面的 .gtab 無法直接使用，必須執行 gcin2tab noseeing 重新產生 noseeing.gtab) http://edt1023.sayya.org/misc/noseeing-6.tar.gz (正/簡體中文 & 日文 綜合版)

tar xvfz noseeing-6.tar.gz cp noseeing.gtab /usr/share/gcin/table

logout & login 按 ctrl-alt-9 就可以開始用。 可以用 gcin-setup 把嘸蝦米設定成內定的輸入法。

## 3. gcin FAQ

### 3.1. 為什麼有時候gcin的輸入視窗不會跟著程式的游標 ?

如果是 GTK(gnome) 的程式，可能你沒有設定 GTK_IM_MODULE=gcin， QT 的程式必須在在 qtconfig 設定 XIM over-the-spot。如果你的 QT 支援 QT_IM_MODULE，只要設定 QT_IM_MODULE=gcin就可以了。

### 3.2. 如何在非 gnome environment(如 KDE) 修改 gcin 顯示的 button 外觀？

執行 gnome-theme-manager 可以選擇主題, 修改外觀. 但是必須在 KDE startup script 中執行 gnome-settings-daemon.

### 3.3. 可以啟動多個 gcin 嗎？

現在可以用 GCIN_XIM 這個環境變數來控制 gcin XIM 的名字 (內定值是由環境變數中的 XMODIFIERS=@im=XXXX 裏面的 XXXX自動設定) export GCIN_XIM=gcin_test

一般程式就可以用 以下方式來控制要連接到那一個 XIM server export XMODIFIERS=@im=gcin_test

### 3.4. 使用者的 gcin 資料毀損，要如何還原成 gcin 原來的設定？

執行

    $ rm -fr ~/.gcin

當然了，使用者自己的詞庫也跟著不見。使用者可以 copy 此目錄來複製 gcin 的設定。

### 3.5. 如何利用 xxx.cin 新增中文輸入的方式？

1. 如果你的 .cin file 仍然是 big5 編碼，請先將檔案的編碼轉換成 utf-8

       $ mv file.cin file.cin.big5
       $ iconv -f big5 -t utf-8 file.cin.big5 > file.cin

2. 將 cin 檔轉換成 gtab 檔

       $ gcin2tab file
       # cp *.gtab /usr/share/gcin/table

3. 編輯 /usr/share/gcin/table/gtab.list ，依其他輸入法的格式加入設定：

        輸入法 數字 gtab檔 Icon檔

   例如：

        行列 8 ar30.gtab ar30.png

4. 按 control-alt-數字鍵，切換到你在 gtab.list 中定的數字鍵。注音與詞音是固定在 3 & 6 鍵上，不能更改的。執行 gcin-setup 可以設定內定的輸入法。

### 3.6. 在 gnome-terminal 等軟體無法用 ctrl-atl-???? 切換輸入法，該怎麼辨？

其實有更好的切換方法，就是用 Ctrl-Shift。

譬如你是用行列輸入法，想要與注音循環切換：

gcin-setup → 輸入法開啟關閉→使用 (選 注音 & 行列) , 第一次內定選行列 設定完成之後，就可以用 Ctrl-Shift 循環切換 注音/行列

### 3.7. gaim 及 gqview 內使用詞音時按 enter 無法送出編輯區內容？

這是因為某些程式會把 enter 吃掉，沒有送給 gcin 處理，可能解決辦法有：

1. 使用 Tab key

2. 中文輸入狀態可使用 shift-space

gaim 裏面有選項可以設定成用 ctrl-Enter 送出內容，這樣就可以在 gcin 內用 Enter。

### 3.8. 如何使用 utf8 encoding？

若使用單一 XIM：

    export XMODIFIERS=@im=$GCIN_XIM
    export LC_ALL=zh_TW.UTF-8
    gcin &
    gedit

這個 gedit 就可以以注音輸入(方方土)

### 3.9. 我想使用倉頡行列的重複字選擇鈴聲，但是嫌聲音太長，有辨法解決嗎？

你可以在用 xset b 1 設定鈴聲長短。

### 3.10. gcin 可以在使用某種輸入法時，顯示另一種輸入法的拆碼，以幫助使用者學習輸入法嗎？

有人反應：

    >  關於嘸蝦米打字時，底下會出來所有的拆碼
    >  這點實在是好啊，（因為小弟雖然用嘸蝦米用了一段時間了，不過很多字都還不是
    >  最簡碼，所以非常感謝這個設計，也因為這個設計讓小弟的嘸蝦米可以再進步
    >  所以，想問，有沒有可能像 MS 那樣，
    >  打注音字出來 嘸蝦米的拆碼參照？
    >  如…
    >  打:ㄅㄛ/ 出來 「嘸 PPD」這樣？

有啊，按 ctrl-alt-3 輸入注音 & 選字，就會顯示【gcin-setup→內定輸入法開啟與關閉 → 第一次內定】的所有的可能拆字。如果沒有指定內定的 .gtab 輸入法，則顯示最近一次的 gtab 輸入法。

gcin 和 windows 的不一樣， 是直接顯示你內定使用的輸入法，不需要另外去設定。所以，你也可以用 gtab 的拼音輸入法去查詢倉頡等 gtab 輸入法。

另外，如果字的某部份忘了如何拆，你可以用 * or ? wildcard 來幫助你選字。

gcin 0.6.2 後的版本有類似嘸蝦米的同音字查詢，按 ` (backquote) 後就會出現注音的視窗，輸入要查詢的同音字就可以了。

### 3.11. 為什麼倉頡按第二鍵後會跑出一些字，選字視窗中數字的順序還會跳？

譬如：按 AA日日後

       1昌 2昍   5曝 6暻 7暘   0暍

這是引導初學者按鍵的功能，5曝代表'曝'是在5這個行(TGB廿土月)上。 34 是空白，表示沒有任何字。

如果不喜歡，有選項可以關掉(gcin-setup → 倉頡/行列…→顯示部份符合的字)。

如果是嘸蝦米，則顯示的號碼必須加一。

### 3.12. gtab(倉頡、行列) 輸入法中要如何加入新詞？

用詞音輸入法加入。

### 3.13. 許氏鍵盤注意事項：

如果使用許氏鍵盤，q 是用來選字詞。

### 3.14. 為什麼 crxvt 內 不能用 gcin？

這是因為你在某個地方有設定 XMODIFIERS=@im=gcin ，gcin 就用 這個來當 XIM name， /usr/X11R6/bin/crxvt 這個 shell script 會設定 XMODIFIERS=@im=xcin ， 所以 crxvt 連不到。

解決方式有兩種：

1. 設定 XMODIFIERS=@im=xcin

2. 修改 /usr/X11R6/bin/crxvt， 把 XIM=xcin 拿掉。

### 3.15. KDE 中 gcin 的 window 為什麼不會跟著 cursor 移動？

你可以用 qtconfig 把 XIM input style 設定成 over-the-spot 就可以了。

### 3.16. gcin 的詞庫不夠多，想貢獻給 gcin 作者自己的詞庫，要怎麼做呢？

這樣就可以看到兩個 file 的差異：

    cd .gcin
    tsd2a tsin > your
    diff your gcin-0.x.x/data/tsin.src > diff.txt
    gedit diff.txt

注意看你的詞庫是否有那些現代人用不到的詞，這些沒用的詞只會增加詞音錯誤的機率，刪除以後再寄給我 (cp76@csie.nctu.edu.tw)。

### 3.17. 在 Mandrake 10.1 中出現輸入區出現方框的亂碼，注音的 一 變成 | 一直線。

請來 這裡 下載暫時修正，這是 Mandrake 的問題。

1. chmod 755 libpango-1.0.so.0.400.1; cp libpango-1.0.so.0.400.1 /usr/lib

2. cp fonts.conf /etc/fonts

### 3.18. 詞音輸入的視窗在打滿注音後會縮回去，看起來有點討厭。

注音輸入的區域的字型必須比編輯區的小個幾點就沒有這個問題。如果你有安裝日文字型，且使用 12/23/2004 以前的 fonts.conf，則還是會有縮回去的問題，請下載最新的 fonts.conf。

### 3.19. gcin coredump 如果要幫忙 debug，該怎麼做？

1. 首先先編譯 gcin

       cd gcin-0.x.x
       make clean
       ./configure
       make

2. make 完了之後，執行：

       ./tgdb

3. 執行 r

       (gdb) r

4. r 指令會開始執行 gcin， 在跑出來的 gedit 輸入一些字，gcin 掛了之後：

       (gdb) bt

5. 下了 bt 以後會有類似以下的訊息，把這個 post 出來。

   看起來可能像這樣：

       #0  0xffffe410 in ?? ()
       #1  0xbffff278 in ?? ()
       #2  0xffffffff in ?? ()
       #3  0x00000001 in ?? ()
       #4  0x40548e5d in poll () from /lib/tls/libc.so.6
       #5  0x404212e7 in g_main_loop_get_context () from /usr/lib/libglib-2.0.so.0

   +

### 3.20. GTK_IM_MODULE/QT_IM_MODULE(qt 4.0 or Mandriva 2006) 使用 gcin 自己的 .so，和XIM相比，有何好處？

1. gcin 掛掉重新執行時比較不會有程式跟著一起掛掉的情形，現在可以直接在 gnome-terminal 下， pkill gcin ，不用擔心 gnome-terminal 會停在那邊不動 (mozilla-gtk2 除外，這是因為如果你有安裝 flash player，flash 會 open XIM 的 sesseion，X11 裏面的 XIM close 時在 server當掉時也會跟著當掉。)。

2. GTK2/QT 的程式 locale 即使設定成 zh_TW.Big5 也還是可以輸入所有的 UTF-8 字。

3. 詞音由於現在有了 key release event，現在也可以用 Shift 來切換中/英。

4. gcin 的協定對 input focus 的處理比 XIM 好。

5. client 直接 對 gcin server 互傳資料，不透過 X server，延遲會比較少。

6. 如果發現 gcin server 沒有在執行，會自動執行 gcin。

### 3.21. 大部份(Mdk 10.0,10.1) 安裝 gcin 後即可直接使用，如果不行該怎麼辨？

執行

      export GTK_IM_MODULE=gcin

通常是設定在 /etc/sysconfig/i18n 。

gcin 會先使用 unix socket，如果不行，則使用 TCP port 9999 - 20000。

如果因為 firewall 的緣故無法使用， export GTK_IM_MODULE=xim 可以指定使用 XIM。

另外，如果你遠端也有 install gcin，可以 export XMODIFIERS=@im=gcin.remote，這樣就會在 remote 端自動執行一個新的 gcin。

目前支援很簡單的編碼以避免 plaintext 在傳送，未來可能會支援 SSL。

雖然目前是用很簡單的 encoding，如果 gcin 搭配 ssh X11 forwarding 應該是非常安全的，而且 data 不像 SSL 會變大，更適合在 low bandwidth 使用。

目前支援 GTK2 & QT，gcin 有提供非常容易使用的 API 介面供其他 terminal 使用，歡迎來把這部份完成，詳細的介面，請看 /usr/local/include/gcin-im-client.h 。

### 3.22. gcin 如果使用到自己的 IM_MODULE 時，且用 export GCIN_CONNECT_MSG_ON=tty (console) 會出現錯誤訊息：

1. connected to unix socket addr /tmp/gcin-????/socket-:0.0-xcin 或是

2. gcin client connected to server 172.x.x.x:9999

只需要一個 gcin 執行就可以，不需要為了同時支援 GTK_IM_MODULE/QT_IM_MODULE & XIM 而執行兩個 gcin process。

目前 OpenOffice 1.1.x GTK2 的版本好像是使用 XIM，1.9.x & 2.x 則是改成用 GTK_IM_MODULE。

1. mrxvt-gcin-0.4.1.tar.bz2 是一個使用 gcin IM client 的 mrxvt。

2. rxvvt-gcin.tbz 是一個使用 gcin IM client 的 rxvt (crxvt)。

如果你因為 install 其他的輸入法把 gcin 的設定弄亂，可以用 root 執行看看 /usr/share/gcin/script/modify-XIM

tsd2a 新增 "-nousecount" 的參數。由於現在 gcin 會統計詞的使用頻率，dump出來的 file 會有 usecount，如果你要比較兩個詞庫時會造成困擾，這時候就可以用這個參數。

### 3.23. Ctrl-Space 無法叫出 gcin 的視窗，檢查事項

一般看 environ variable 的內容可以用 printenv，由於可以設定 environ variable 的地方太多了，用開 terminal 的方式看，不見得一定符合應用程式用的實際值，所以還是直接用 proc file system 最準。

1. pgrep gcin 是否可以看到 gcin 的 process Id (一個數字)，如果可以，goto 3

2. 直接在 terminal 執行 gcin，看有什麼錯誤訊息。 如果最後一行出現的訊息是

            IMOpenIM failed. Maybe another XIM server is running.

   這表示 xcin 可能仍然在執行，試試 pkill xcin再執行 gcin 看看。當然，還是必須修改你的 X window 的 script把執行 xcin 的部份改成 gcin 才能把問題真正解決，也有可能你忘了 logout & login。

3. 檢查 XMODIFIERS 是否設定成一致的內容。

       $ pgrep gcin
       7438
       $ vi /proc/7438/environ

   這個 file 是這個 process 所有的 environ variables 的內容，檢查 XMODIFIERS 內容。你可以用同樣的方法檢查應用程式的內容，例如 firefox。

   gcin 的XMODIFIERS 可以不設定，但應用程式的就必須設定成 XMODIFIERS=@im=xcin 如果有設定，就必須一致，例如都設定成 XMODIFIERS=@im=gcin 也可以。

4. gtk2 (gnome) 程式檢查事項。

       $ gtk-query-immodules-2.0

   是否有底下的內容，

       "/usr/lib/gtk-2.0/immodules/im-gcin.so"
       "gcin" "gcin Input Method" "gtk20" "/usr/share/locale" "*"

   如果沒有，以 root 執行底下的 script 看看 /usr/share/gcin/script/modify-XIM 。

5. 檢查是否有設定 GTK_IM_MODULE=gcin 這個 environ variable。設定成 GTK_IM_MODULE=xim 也是可以用，只是 over-the-spot 會有問題，gcin 視窗不會跟著程式的游標移動，除非有安裝 gtk2 xim over-the-spot 的 patch，還是用 GTK_IM_MODULE=gcin 最好。

6. 如果是用 XIM，建議設定 export LC_CTYPE=zh_TW.Big5 。

### 3.24. 覺得 gcin 的釘子不好看，想要換掉。

有此需求的的人自己 替換 /usr/share/icons/gcin 。

### 3.25. gcin 0.9.8 替 .cin 新增 %space_style 的選項，後面的數字代表的意義：

    1:      嘸蝦米、大易 +
    2:      倉頡等 +
    4:      行列輸入法 +

有了這個，且在 gcin-setup 中設定成「由 .gtab 指定」，就可以自動設定空白鍵的選項，而且用 ctrl-alt- 切換輸入法時也會自動切換。

    %selkey 1234567890
    %space_style 2
    %keyname begin

### 3.26. gtab 中 %keep_key_case 選項是做什麼用的？

gcin 0.9.8 替 gtab 新增 %keep_key_case 的選項。

用在需要分別大小寫的輸入法，例如：日文。

            %space_style 4
            %keep_key_case          <---------------------------
            %keyname begin

如何確定目前是使用 gcin 自己的 gtk/qt im module？

1. 可以先用 gedit or kedit 測試，在編輯區按 mouse 右鍵，menu 裏選輸入法，會顯示出目前正在使用的輸入法，如果是 gcin Input Method 就是對的，其他的是錯的。

2. 在terminal 用 export GCIN_CONNECT_MSG_ON=， 再執行自己要的測試程式， terminal (console) 會出現以下 message ：

       connected to unix socket addr /tmp/gcin-????/socket-:0.0-xcin

### 3.27. gcin 與 scim memory 使用比較

分別以 gcin 的詞音與 scim chewing 用 kedit/gedit/leafpad 輸入「測試」兩個字， 由於 scim 有數個 process，必須全部加起來。這個測試也比較 qt-im-module/gtk-im-module 的 memory 使用。

          vsz    rss    kedit-vsz  kedit-rss
    scim  80168  31312  47052      17368
    gcin  29132  8568   41840      16144

          gedit-vsz  gedit-rss  leafpad-vsz  leafpad-rss       (測試 gtk-im-module)
    scim  67148      16444      34084        9756
    gcin  61008      14924      26880        7884

kedit: 3.4.1 scim: scim 1.4.2 + scim-chewing 0.2.1 gcin: gcin 1.0.4

### 3.28. Mozilla Firefox 中 coredump，想看是不是 gtk-im module 造成的。

1. 試著去 compile firefox，把 error 回報 mozilla，改成直接 coredump。Mandriva 中的firefox是改成直接 coredump。

2. 在 make gcin 修改 config.mak 設定 OPTFLAGS=-g 去 compile，這樣才有 debug 的 information。然後用 root make install。

3. 當 coredump 發生時 gdb /usr/lib/mozilla-firefox-1.0.7/mozilla-firefox-bin core.xxxx 這邊這個可執行檔是要真正的那一個，不是 shell script。 core.xxxx 是 coredump 的 file。 這樣就可以看到 coredump 在那邊發生。

與 caleb 討論，所想到如何避免 flash player plugin open XIM，由於 flash player XIM 寫的有問題，有時候會造成 firefox coredump。gcin 是可以 compile 成不支援 XIM，但有時候又需要用(wine, rxvt-unicode)

其實很簡單，修改 /usr/bin/mozilla-firefox or /usr/bin/firefox 執行的 script 加入 unset XMODIFIERS 。原理是 gcin 如果沒有設定 XMODIFIERS 內定的 XIM name 就是 gcin， 把 XMODIFIERS unset 後，gcin 用 GTK_IM_MODULE=gcin 仍然可以輸入，但是 XIM 需要 XMODIFIERS 才能，這樣就達到防止 flash player open XIM。

## 4. 注意事項

gcin 的 .cin format 與 .xcin 有些不同，並不支援 * 第三欄位，目前好像只有行列有使用，如果有需求時，可以加在 %quick 段落內。

把 gcin 一類的 XIM server kill 掉再重新啟動，容易造成 X window 底下程式運作不正常(特別是 mozilla)，最好還是 logout 再 login。

gcin 1.3.0 後，使用者可以在 ~/.gcin 裏加自己的 gtab.list *.gtab，gcin 會優先使用這裡的 files。

gcin 0.9.8 的 .gtab format 有變動，如果你不是使用 gcin 內附的 .gtab file，一定要用 gcin2tab 重新產生新的 .gtab file，否則會 coredump。

gcin 0.6.5 新增關掉 gcin remote client 支援的選項 ，如果你是 su 成另外一個 user，這個選項仍然必須打開，否則無法輸入中文。

## 5. 更多 gcin 相關資源

gcin 論壇

http://hyperrate.com/dir.php?eid=67

gcin 原始碼

http://www.csie.nctu.edu.tw/~cp76/gcin/download/

各平台 gcin 套件下載區

http://cle.linux.org.tw/trac/wiki/GcinDistros

各種輸入法表格下載

http://cle.linux.org.tw/trac/wiki/GcinTables