解析環境變數XMODIFIERS/GTK_IM_MODULE(轉)

ba發表於2007-08-16
解析環境變數XMODIFIERS/GTK_IM_MODULE(轉)[@more@]我們配置輸入法時,都是習慣性的在輸入法啟動前匯出環境變數:

export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE=SCIM

他們有何用意呢??

我們常用的輸入法有以下幾種:

1. XIM (X輸入法, 所有 X 圖形程式都是可用的)
2. GTK immodule(GTK輸入模組, 專給 GTK+2/Gnome 程式用的,GTK+ 1 不適用)
3. QT immodule(QT輸入模組, 專給 QT/KDE 程式用的)


XMODIFIERS實際上是指定 X圖形程式的輸入法.

GTK_IM_MODULE 則是指定GTK+2的程式預設所用的輸入法模組.

有關GTK+2 所有輸入法模組都安裝在 /usr/lib/gtk-2.0/2.4.0/immodules/ 目錄下.



關於他們之間的關係,我們有一個比較直觀的經驗就是, 當我們因為設定XMODIFIERS失誤(比如在有些情況下scim小寫),導致X輸入法沒法使用時,我們在gnome-terminal裡單擊滑鼠右鍵,移動到 "輸入法",再選擇 "SCIM Input Method"時,我們在gnome-terminal下卻是可以輸入中文的. 當然前提是我們已經安裝scim-gtk2-immodule包.


一般情況下XMODIFIERS的優先順序高於GTK_IM_MODULE ,即當我們同時設定這兩個環境變數,在GTK+2的應用程式裡優先使用的是XMODIFIERS指定的X輸入法.



GTK immodule 比起 XIM 有很多好處:
1. 不受 locale 限制
2. 完全不用設定,隨時可用,會自動呼叫 IM server
3. 可以任意切換各種不同 IM server,隨時可改,無需重啟X.
4. 真正支援遊標跟隨.



但是因為 c++ 的相容性問題使 scim-gtk2-immodule 跟許多程式相沖突,故而在目前,如果我們使用scim的話,還不能流暢享受到GTK 輸入模組的種種妙處,只能使用 Scim for XIM.

注:mozilla, firefox, thunderbird 等不是正規的 GTK+ 2,沒辦法用滑鼠動態選擇輸入法. 如果你僅僅使用GTK immodule的話, 一定要使用GTK_IM_MODULE指定預設的GTK 輸入模組.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961483/,如需轉載,請註明出處,否則將追究法律責任。

相關文章