解決Ubuntu16部分程序不能呼出中文輸入法的問題

解決Ubuntu16部分程序不能呼出中文輸入法的問題

  • 現象:
    部分程序, 如Oracle SQL Developer, Dash, SecureCRT 安裝後不能調出中文輸入法 (fcitx)
  • 緣由:
    這些程序啓動後調用了qt的環境. 而qt環境默認的輸入法是xim, 須要修改qt的配置來解決.
  • 操做:
    運行
    sudo qtconfig
    # 報錯以下:  
    qtconfig: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qtconfig': No such file or directory
    # 使用which qtconfig發現並未安裝(ubuntu默認是qt4?)  
    sudo apt install qt4-qtconfig
    出現:
    Qt4設置
    在"界面"-->"默認輸入法" 中選擇fcitx, 而後"文件"-->"保存"-->"退出"

  • 參考 解析環境變量XMODIFIERS/GTK_IM_MODULE Posted on January 26, 2007 by raywang

http://blog.chinaunix.net/u/9465/showart_184314.htmlhtml

咱們配置輸入法時,都是習慣性的在輸入法啓動前導出環境變量:linux

export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=SCIMc++

他們有何用意呢??shell

咱們經常使用的輸入法有如下幾種:ubuntu

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

XMODIFIERS其實是指定 X圖形程序的輸入法..net

GTK_IM_MODULE 則是指定GTK+2的程序默認所用的輸入法模塊.firefox

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

關於他們之間的關係,咱們有一個比較直觀的經驗就是,當咱們由於設置XMODIFIERS失誤(好比在有些狀況下scim小寫),致使X輸入法無法使用 時,咱們在gnome-terminal裏單擊鼠標右鍵,移動到 "輸入法",再選擇 "SCIM Input Method"時,咱們在gnome-terminal下倒是能夠輸入中文的.固然前提是咱們已經安裝scim-gtk2-immodule包.code

通常狀況下XMODIFIERS的優先級高於GTK_IM_MODULE ,即當咱們同時設定這兩個環境變量,在GTK+2的應用程序裏優先使用的是XMODIFIERS指定的X輸入法.server

GTK immodule 比起 XIM 有不少好處:

  1. 不受 locale 限制
  2. 徹底不用設定,隨時可用,會自動調用 IM servera
  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 輸入模塊.

相關文章
相關標籤/搜索