= gcin 使用手冊 = eliu 2008-11-24 本文使用 UTF-8 編碼,請使用支援 UTF-8 編碼的編輯器,例如:gedit。 == 各平台上的安裝方式 == === 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。 === Debian === ==== gcin 的安裝方式 ==== ------------------------ # aptitude install gcin ------------------------ 或 ----------------------------------------------------------------------- # dpkg -i gcin_X.X.X-X~X_iX86.deb gcin-qt3-immodule_X.X.X-1~X_iX86.deb ----------------------------------------------------------------------- === Fedora === gcin 的 FC3 FC4 FC5 FC6 (Development) 等版本,都已經正式進入 Fedora Extras 了。因此,直接使用 'yum install gcin' 即可。至於 REHL4 的 rpm 則仍可在 gcin 同好會的 http://cle.linux.org.tw/trac/wiki/GcinDistros[下載情報區] 裡下載。 === 下載 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' 。 ==== 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 ------------------------------- 由 gcin-x.x.x.tar.bz2 自行編譯需要 GTK+ devel、Qt3 devel、Qt4 devel。 ==== 在 Mandriva 自行編譯 gcin ==== 在 Mandriva 需要 install libgtk+2.0_0-devel & libqt3-devel & libqt4-devel 這三個 .rpm,不過各家的名字可能不太一樣,可能要找一下。另外,你還需要 install pkgconfig 這個 .rpm 。 ==== 在 Debian 自行編譯 gcin ==== ------------------------------------------- # apt-get update # apt-get build-dep gcin # apt-get source gcin # cd gcin-X.X.X(此處填入 gcin 的版本號) # dpkg-buildpackage -b ------------------------------------------- ==== 編譯自己的 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) == 使用 gcin == === 介面簡介 === 按 ctrl-Space 叫出 gcin 視窗後,在第一排的注音輸入的按鈕 (button) 按滑鼠右鍵 右鍵可以叫出 gcin-setup window 設定視窗; 按 mouse 左鍵可以叫出符號輸入視窗。 === 詞音輸入法 === - 由於 '一' 與 '不' 同音字詞過多,輸入此兩字的注音應該以口語發音為主。 譬如,輸入 '不會' , '不' 應該輸入第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) ------------------------------------------------------ === 詞音標點符號輸入 === 取發音的第一個注音符號 + 輕聲(‧) or 1/2/3/輕 聲 如果要輸入注音符號, 就按向下鍵或空白鍵去選 ---------------------------------------------------------------- ㄐ 。 (句點) ㄉ , (逗號) ㄇ : (冒號) ㄨ‧ ? (問號) ㄈ ; (分號) ㄊ ! (驚嘆號) ㄊ 他 ㄊ 她 ㄊ‧ 他 (由於!的注音是ㄊ,如果不想造成困擾,就用這一個。) ㄊ‧ 她 ㄋ 你 ㄋ 妳 ㄉˋ 、 (頓號) ㄉˊ ‧ (點) ㄑ‧ $ (錢) ㄒ‧ * (星) [ 『 ] 』 [ 「 (直接按中括號 '[' ,這個最容易使用) ] 」 (直接按中括號 '[' ,這個最容易使用) ㄌ‧ 了 ㄌ2 – (連接號) ㄌ … (省'略'號) ㄌ 了 ㄇ3 《 (書'名'號) ㄇ4 》 ㄆ4 — (破折號) ㄒ ℃ (攝氏 Celsius) ㄒ2 ㏄ (毫升) ㄉ˙ 的 ㄍ 個 ㄍ‧ ♂ (公) ㄇ‧ ♀ (母) ㄇ‧ 嗎 ㄇ‧ 麼 ---------------------------------------------------------------- 酷音輸入 的 shift + ",./;\'" 也可以用 現在滑鼠的指標移到符號視窗的按鈕,約一秒鐘會顯示對應的注音按鍵提示,方便學習。 使用許氏鍵盤者某些符號會不能用,例如 '。' ,這是許氏鍵盤先天的問題。 要輸入'「」『』《》' 還有一種方法就是,用 '[ ]' 兩個鍵,輸入以後可以用空白鍵選擇。 在詞音中可以輸入中括號 '[]' ,由於詞庫中 '[]' 有定義各種括號、引號及書名號的組合,這邊就可以用預選詞的方式來選擇你要的括號。 gcin 0.8.8 後的版本可以用注音輸入半/全形 數字 '(0..9 及減(-))' 及 用 '[]' 鍵輸入 '()[]{}',現在也可以加入含有數字的詞,譬如:「7月, 5點, 3個」。你也可以用這來儲存電話號碼,只要用注音輸入姓名,然後用 shift 選就可以了。例如:可以加入「周潔輪:0935-123456」。 gcin 1.4.0 後的版本,可用類似微軟新注音前導字元的方式輸入符號,用法為:在詞音輸入法中文輸入的狀態下,按一下 \` (grave,位於鍵盤左上方,與 '~' 同鍵),再按鍵盤上任何可輸入實體字元的按鍵,就可以輸入各種不同的符號,若想知道可輸入哪些符號,可參考 http://hyperrate.com/thread.php?tid=3613[Hyperrate: 整理新注音前導字元 ` 可以輸入的符號]。 === 自訂符號表 === 如果要修改符號輸入視窗,編輯 '~/.gcin/symbol-table' , gcin 會偵測檔案是否有改變, 如有變動就自動重新載入 'symbol-table' 這個檔。 如要修改 Alt-Shift-key 送出的字串,修改 '~/.gcin/phrase.table' 即可。 === gtab 輸入法 === ==== 行列輸入法說明 ==== 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 ----------------------------------------------------- 葉光哲(老刀)先生根據行列輸入法發明人–廖明德先生提供的對照檔,為 OpenVanilla 整理了支援 CJK 七萬餘字的行列輸入法表格 (包含 Unicode 前 20902 字、一些特殊符號、與 Extension A & B)。原本 OpenVanilla 的行列為了實作簡碼功能, 將七萬餘字拆成三個檔案,現在葉光哲先生已為 gcin 將三個檔整理成一個 cin 檔(有支援簡碼), gcin 1.4.3 pre9 以後的版本已加入此表格。相關討論可見 http://hyperrate.com/thread.php?tid=7757[Hyperrate| 新版 OpenVanilla 行列輸入法表格]。 如要使用此表格,請編輯 gtab.list (位於 '/usr/share/gcin/table/gtab.list' 或 '$HOME/.gcin' ),將: -------------------------- 行列 8 ar30.gtab ar30.png -------------------------- 改成 ------------------------------ 行列 8 ar30-big.gtab ar30.png ------------------------------ 退出 X window 再重新進入後,執行 gcin 即可。 ==== 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 上網 ------------- ==== 那可不可以與單字重覆定義按鍵呢? ==== 可以的,在按空白鍵後就可以選字 or 詞。 ==== gcin 有嘸蝦米輸入法可用嗎? ==== 以下的 嘸蝦米 table 僅供測試用,如果有長期使用,請購買合法版權。 下載: - 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 把嘸蝦米設定成內定的輸入法。 ==== gcin 的拼音輸入法可以不打音調嗎? ==== pinyin 輸入法必需打音調。輸入拼音後,按 '1/2/3/4/5/空白鍵' 會進入選字狀態,其中,按 1 或空白鍵時,都只會顯示第一聲的字。 gcin 另有一個 '通用拼音輸入法' ,可以不必打音調,可於 http://hyperrate.com/thread.php?tid=7692[Hyperrate: 通用拼音] 找到 cin 檔與相關討論。這個通用拼音輸入法的改編版,輸入拼音後,按 '空白鍵' 會顯示 '1/2/3/4/5' 聲的字,且支援以前導字元的方式輸入符號。 == gcin FAQ == === 為什麼有時候gcin的輸入視窗不會跟著程式的游標 ? === 如果是 GTK(gnome) 的程式,可能你沒有設定 GTK_IM_MODULE=gcin, QT 的程式必須在在 qtconfig 設定 XIM over-the-spot。如果你的 QT 支援 QT_IM_MODULE,只要設定 QT_IM_MODULE=gcin就可以了。 === 如何在非 gnome environment(如 KDE) 修改 gcin 顯示的 button 外觀? === 執行 gnome-theme-manager 可以選擇主題, 修改外觀. 但是必須在 KDE startup script 中執行 gnome-settings-daemon. === 可以啟動多個 gcin 嗎? === 現在可以用 GCIN_XIM 這個環境變數來控制 gcin XIM 的名字 (內定值是由環境變數中的 XMODIFIERS=@im=XXXX 裏面的 XXXX自動設定) export GCIN_XIM=gcin_test 一般程式就可以用 以下方式來控制要連接到那一個 XIM server -------------------------------- export XMODIFIERS=@im=gcin_test -------------------------------- === 可以在遠端使用 gcin 嗎? === gcin 有支援遠端的功能。 勾選 '設定' ('gcin-setup') → '內定輸入法&開啟/關閉' → '遠端 client 程式支援' 這個選項,內定是 port 9999,如果9999 被佔用,會自動往下尋找 10000、10001……。gcin im client 會從 XMODIFIERS 自動去找對應的 port。只是如果你有用 IP table,就必須打開對應的 port。 那如果 gcin server 在 firewall/NAT 裡面,client 在 firwall 外面,然後是用 ssh X11 forward 方式,有兩種解決方式: - 一種方式是用 XIM + ------------------------ $ export GTK_IM_MODULE=xim $ export QT_IM_MODULE=xim ------------------------ - 也可以用在 remote 另外執行一個 gcin 的方式,變成直接 local 的 connection + ------------------------------- $ export XMODIFIERS=@im=gcin2 $ gcin & $ gedit ....... ------------------------------- 未來 gcin 有可能會用 X11 ipc 的方式再弄一個傳輸方式,由於遠端的需求很少,而且有替代方式,可能會等到真的閒到無聊的時候才可能去弄。目前 XIM 一個嚴重的缺陷是XIM server 結束時,某些情況會造成 client 跟著結束或鎖死的情況,不知道是 XIM 設計的問題還是 X11 的問題。XIM 的另外一個缺陷是不支援 KeyRelease 的 event,造成沒辦法在詞音中使用 Shift 切換中/英。 === 使用者的 gcin 資料毀損,要如何還原成 gcin 原來的設定? === 執行 ----------------- $ rm -fr ~/.gcin ----------------- 當然了,使用者自己的詞庫也跟著不見。使用者可以 copy 此目錄來複製 gcin 的設定。 === 如何利用 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 可以設定內定的輸入法。 === 在 gnome-terminal 等軟體無法用 ctrl-atl-???? 切換輸入法,該怎麼辨? === 其實有更好的切換方法,就是用 Ctrl-Shift。 譬如你是用行列輸入法,想要與注音循環切換: gcin-setup → 輸入法開啟關閉→使用 (選 注音 & 行列) , 第一次內定選行列 設定完成之後,就可以用 Ctrl-Shift 循環切換 注音/行列 === gaim 及 gqview 內使用詞音時按 enter 無法送出編輯區內容? === 這是因為某些程式會把 enter 吃掉,沒有送給 gcin 處理,可能解決辦法有: 1. 使用 Tab key 2. 中文輸入狀態可使用 shift-space gaim 裏面有選項可以設定成用 ctrl-Enter 送出內容,這樣就可以在 gcin 內用 Enter。 === 如何使用 utf8 encoding? === 若使用單一 XIM: -------------------------------- export XMODIFIERS=@im=$GCIN_XIM export LC_ALL=zh_TW.UTF-8 gcin & gedit -------------------------------- 這個 gedit 就可以以注音輸入(方方土) === 我想使用倉頡行列的重複字選擇鈴聲,但是嫌聲音太長,有辨法解決嗎? === 你可以在用 xset b 1 設定鈴聲長短。 === gcin 可以在使用某種輸入法時,顯示另一種輸入法的拆碼,以幫助使用者學習輸入法嗎? === 有人反應: --------------------------------------------------------------------------- > 關於嘸蝦米打字時,底下會出來所有的拆碼 > 這點實在是好啊,(因為小弟雖然用嘸蝦米用了一段時間了,不過很多字都還不是 > 最簡碼,所以非常感謝這個設計,也因為這個設計讓小弟的嘸蝦米可以再進步 > 所以,想問,有沒有可能像 MS 那樣, > 打注音字出來 嘸蝦米的拆碼參照? > 如… > 打:ㄅㄛ/ 出來 「嘸 PPD」這樣? --------------------------------------------------------------------------- 有啊,按 ctrl-alt-3 輸入注音 & 選字,就會顯示 '設定' ('gcin-setup') → '內定輸入法 & 開啟/關閉' → '第一次內定' 的所有的可能拆字。如果沒有指定內定的 .gtab 輸入法,則顯示最近一次的 gtab 輸入法。 gcin 和 windows 的不一樣, 是直接顯示你內定使用的輸入法,不需要另外去設定。所以,你也可以用 gtab 的拼音輸入法去查詢倉頡等 gtab 輸入法。 另外,如果字的某部份忘了如何拆,你可以用 '*' or '?' 萬用字元 (wildcard) 來幫助你選字。 gcin 0.6.2 後的版本有類似嘸蝦米的同音字查詢,按 '`' (backquote) 後就會出現注音的視窗,輸入要查詢的同音字就可以了。 如果需要查詢許多字的讀音,可使用 '設定' ('gcin-setup') → '剪貼區 注音查詢' 來大量查詢。從網頁或文章中直接選取整段文字,開啟 '剪貼區 注音查詢' 後即可標示注音,也可在裡面輸入字,用滑鼠選取後,按 '自剪貼區更新' 。 === 為什麼倉頡按第二鍵後會跑出一些字,選字視窗中數字的順序還會跳? === 譬如:按 AA日日後 ---------------------------------- 1昌 2昍 5曝 6暻 7暘 0暍 ---------------------------------- 這是引導初學者按鍵的功能,5曝代表'曝'是在5這個行(TGB廿土月)上。 34 是空白,表示沒有任何字。 如果不喜歡,有選項可以關掉 ( 'gcin-setup' → '倉頡/行列…' → '顯示部份符合的字' )。 如果是嘸蝦米,則顯示的號碼必須加一。 === gtab(倉頡、行列) 輸入法中要如何加入新詞? === 用詞音輸入法加入。在中文輸入的狀態下,把 cursor (游標) 移至要存的詞句的開頭,按下 shift-Enter,則會自 cursor 所在位置存到編輯區的結尾,cursor 也會自動跳到結尾,方便繼續輸入。 === 許氏鍵盤注意事項: === 如果使用許氏鍵盤,'q' 是用來選字詞。 === 為什麼 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' 拿掉。 === KDE 中 gcin 的 window 為什麼不會跟著 cursor 移動? === 你可以用 qtconfig 把 XIM input style 設定成 over-the-spot 就可以了。 === 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)。 === 在 Mandrake 10.1 中出現輸入區出現方框的亂碼,注音的 '一' 變成 '|' 一直線。 === 請來 http://www.csie.nctu.edu.tw/~cp76/linux/fontconfig[這裡] 下載暫時修正,這是 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 === 詞音輸入的視窗在打滿注音後會縮回去,看起來有點討厭。 === 注音輸入的區域的字型必須比編輯區的小個幾點就沒有這個問題。如果你有安裝日文字型,且使用 12/23/2004 以前的 fonts.conf,則還是會有縮回去的問題,請下載最新的 fonts.conf。 === 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 ---------------------------------------------------------------------------- === 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。 === 大部份(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' 。 === gcin 如果使用到自己的 IM_MODULE 時,且用 'export GCIN_CONNECT_MSG_ON=tty' (console) 會出現錯誤訊息: === a. connected to unix socket addr /tmp/gcin-????/socket-:0.0-xcin 或是 b. 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。 . http://www.csie.nctu.edu.tw/~cp76/linux/mrxvt-gcin-0.4.1.tar.bz2[mrxvt-gcin-0.4.1.tar.bz2] 是一個使用 gcin IM client 的 mrxvt。 . http://www.csie.nctu.edu.tw/~cp76/linux/rxvt-gcin.tbz[rxvvt-gcin.tbz] 是一個使用 gcin IM client 的 rxvt (crxvt)。 如果你因為 install 其他的輸入法把 gcin 的設定弄亂,可以用 root 執行看看 /usr/share/gcin/script/modify-XIM tsd2a 新增 "-nousecount" 的參數。由於現在 gcin 會統計詞的使用頻率,dump出來的 file 會有 usecount,如果你要比較兩個詞庫時會造成困擾,這時候就可以用這個參數。 === 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' 。 === 覺得 gcin 的釘子不好看,想要換掉。 === 有此需求的的人自己 替換 '/usr/share/icons/gcin' 。 === gcin 0.9.8 替 .cin 新增 '%space_style' 的選項,後面的數字代表的意義: === -------------------- 1: 嘸蝦米、大易 2: 倉頡等 4: 行列輸入法 -------------------- 有了這個,且在 gcin-setup 中設定成「由 .gtab 指定」,就可以自動設定空白鍵的選項,而且用 ctrl-alt- 切換輸入法時也會自動切換。 ------------------ %selkey 1234567890 %space_style 2 %keyname begin ------------------ === 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 -------------------------------------------------------------------- === 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 === 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。 === 請問一下內定輸入法,是由那個設定檔來決定的? === '~/.gcin/config/default-input-method' === 使用 su 或 sudo 後,無法使用 gcin,該怎麼辦? === 如果使用的 gcin 是 1.4.3 pre7 之前的版本(含 1.4.3 pre7),可以這麼做: 設定 ('gcin-setup') → 內定輸入法 & 開啟/關閉 → 遠端 client 程式支援 (port 9999-) 或 'gcin-setup-tab' → 通用 → 遠端 client 程式支援 (port 9999-) 完成這個動作後,重新登入 X Window System 試試看。 如果用的 gcin 是 1.4.3 pre8 後的版本(含 1.4.3 pre8),已支援 su root 的中文輸入,注意—要配合新的 libgcin-im-client.so.1.1.0 才可! === 在 KDE 的系統管理頁面無法使用 gcin,該怎麼辦? === 問題同上。開啟設定中的 '遠端 client 程式支援 (port 9999-)' 並重新登入 X Window System 試試看。 === 升級到 gcin 1.4.3 後,桌面多出三個方格是什麼東西? === gcin 1.4.3 pre 8 後的版本,整合了 gcb,gcb 是一個管理剪貼簿 (clipboard) 的小工具。 一般 X Window 會自動複製選取的內容,但如果你不小心再次選取到其他內容,原本複製的東西就會被新選取的內容所覆蓋,gcb 可以避免這種狀況發生。 gcb 提供了三個儲存格,在 gcb 的任一個儲存格上按右鍵可以設定儲存按鈕,每5秒鐘從剪貼區更新。按左鍵把儲存格的內容存到剪貼區。按中鍵可以選擇之前的剪貼區內容的改變。如果不想用,可以在 gcin-setup 內關掉。 == 注意事項 == 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,這個選項仍然必須打開,否則無法輸入中文。 == 更多 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 .安裝額外的輸入法 + http://cle.linux.org.tw/trac/wiki/GcinInstallTables .製作新的輸入法 cin 檔 + http://cle.linux.org.tw/trac/wiki/GcinMakeCin