= gcin 使用手冊 = eliu v 1.4.3-pre 2008-08-08 本文使用 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 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 --------------------------------------------------------------------- ==== 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 ------------------------------- 由 .tar.bz2 需要 install libgtk+2.0_0-devel & libqt3-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/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 葉光哲先生整理的行列 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 ==== 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 僅供測試用,如果有長期使用,請購買合法版權。 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 把嘸蝦米設定成內定的輸入法。 == 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 原來的設定? === 執行 ----------------- $ 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) 後就會出現注音的視窗,輸入要查詢的同音字就可以了。 === 為什麼倉頡按第二鍵後會跑出一些字,選字視窗中數字的順序還會跳? === 譬如:按 AA日日後 ---------------------------------- 1昌 2昍 5曝 6暻 7暘 0暍 ---------------------------------- 這是引導初學者按鍵的功能,5曝代表'曝'是在5這個行(TGB廿土月)上。 34 是空白,表示沒有任何字。 如果不喜歡,有選項可以關掉(gcin-setup -> 倉頡/行列…->顯示部份符合的字)。 如果是嘸蝦米,則顯示的號碼必須加一。 === gtab(倉頡、行列) 輸入法中要如何加入新詞? === 用詞音輸入法加入。 === 許氏鍵盤注意事項: === 如果使用許氏鍵盤,'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 的 .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