GTK2 本身也提供不少輸入法供使用者選用, 您可以透過 gtk-query-immodules-2.0 來取得有那些 Input Method Module, 不過仍然沒有內建中文的輸入法模組, 所以他也支援非他本身所提供的其他方式來輸入, 例如 XIM。 GTK_IM_MODULE 在某些情況下的優先權會比 XMODIFIERS 還高, 如果為了保險起見, 可以設定為 xim。
% setenv GTK_IM_MODULE xim
如果要跨入 immodule 可以注意一下 japanese/uim。 uim 的目標是作為發展新 immodule 的基礎平台, 目前已經有不少 Emacs 的輸入法在上面,像是 PinYin。 或是 文具(wenju),他已經在上面開發五筆和拼音輸入法, 他利用 TIM(Table-based Input Method) 這個 GTK2 鍵盤輸入模組, 將輸入法以轉換碼表的方式控制,可以方便的修改或新增碼表來定義新的輸入法, wenju 的網站有詳細介紹 TIM 的安裝與使用方式。 某個大陸的輸入法 SCIM 也有做對 immodule 的支援。
筆者把 xcin25 的注音,倉頡,嘸蝦米的 .cin 轉成了 wenju 的 .tim, 有興趣的可以安裝 outta-port/wenju,然後設定 GTK_IM_MODULE 來選擇輸入法, 或是在視窗上按右鍵選擇。 注音是 phone.tim,倉頡是 cj.tim,嘸蝦米是 liu.tim, 如果要使用注音可以輸入如下:
% setenv GTK_IM_MODULE phone.tim
以下是轉換 .cin 到 .tim 的方式 # echo "TIMName=注音" > phone.tim.big5 # sed -e '/%/d' -e '/^#/d' phone.cin | awk '{print $1, $2}' | sort | uniq | \ awk '{ if ( b == $1 ) { line = line "|" $2 } else { line = line "\n" $1 "=" $2 } b = $1 } END { print line }' \ >> phone.tim.big5 # iconv -c -f big5 -t utf-8 phone.tim.big5 > /usr/X11R6/share/wenju/phone.tim # gtk-query-immodules-2.0 > /usr/X11R6/etc/gtk-2.0/gtk.immodules 以下是輸入法的使用方式 Shift+Space 可切換英數輸入法 . 下一個字或詞 > 下十個字或詞 , 上一個字或詞 < 上十個字或詞 Space 選擇第零個字或詞 Ctrl+數字 選擇第幾個字或詞 Enter 送出
剛切換到 wenju 的時候,OverTheSpot 會在最左上角, 可以任意輸入一個字然後按方向鍵,他就會跑到正確的位置上。 不過選字的方式還需改進,目前是由 0 至 9, 通常是習慣 1 至 0 的鍵盤排列順序。
WWW: UIM input method collection