了解和設置不同的輸入法
我將Trisquel GNU/Linux 7.0 LTS 與 GNOME 3閃回環境一起使用。
我聽說過三種不同的輸入法,即。
ibus
,xim
和uim
. 它似乎ibus
預裝在我的系統上。$ cat trisquel_7.0_i686.iso.manifest | grep ibus gir1.2-ibus-1.0 1.5.5-1ubuntu3 ibus 1.5.5-1ubuntu3 ibus-gtk:i386 1.5.5-1ubuntu3 ibus-m17n 1.3.4-3ubuntu1 ibus-table 1.5.0.is.1.5.0.20130419-2 libibus-1.0-5:i386 1.5.5-1ubuntu3 libusb-0.1-4:i386 2:0.1.12-23.3ubuntu1 libusb-1.0-0:i386 2:1.0.17-1ubuntu2 libusbmuxd2 1.0.8-2ubuntu1 libustr-1.0-1:i386 1.0.4-3ubuntu2
在面對這個問題時,我了解了使用at 進行安裝
uim
和設置。最近我從. 但是為了克服這個錯誤,我現在打算擺脫。GTK_IM_MODULE="uim"``~/.profile``uim``GTK_IM_MODULE="uim"``~/.profile``ibus
沒有安裝任何額外的輸入法,(比如全新安裝的 Trisquel),
echo $GTK_IM_MODULE
輸出xim
所以,我很困惑,因為考慮到預設輸入法是ibus
,那麼為什麼$GTK_IM_MODULE
要說xim
?我也可以
apt-get remove ibus
嗎?或者我應該uim
先安裝然後刪除ibus
?另外我想知道目前正在使用哪種輸入ibus
法xim
?設置輸入法的正確方法是什麼(即它GTK_IM_MODULE="uim"
是~/.profile
)?此外,我發現了一個 gsettings 方案:
$ gsettings get org.gnome.desktop.interface gtk-im-module 'gtk-im-context-simple'
簡要/廣泛地說,我需要幫助來了解安裝/刪除和設置不同的輸入法:
- 我如何知道目前處於活動狀態的輸入法?
- 如何安裝和設置不同的輸入法?(我應該刪除另一個嗎?)
整個 X11 輸入堆棧是一團糟。首先,如果您只是輸入拉丁字元或 XKB 鍵盤佈局定義的多字元組合序列,則不需要任何特殊的輸入法框架。嚴格來說,任何多鍵序列,例如死鍵,都需要非常簡單的輸入法。但它們由 libx11/XKB 提供,無需任何額外的 IM 框架即可工作。因此,如果您不需要輸入中文或日文等語言,則可以解除安裝所有 ibus、uim、fcitx 或任何輸入法。
正如您已經說過的,Gnome 將 ibus 設為預設輸入法,當時並不是每個人都對這個決定感到高興。與 ibus 相比,很多人更喜歡 fcitx(這似乎是大多數 KDE 發行版的預設設置)。此外,fcitx 在 ibus 中顯然缺少幾個功能,至少在這篇現在非常過時的LWN 文章中是這樣於 2012 年發布,例如不完整的語言支持(主要是日語 vs. 簡體 vs. 繁體中文)或性能問題。由於我不會說任何需要特殊 IM 框架的東方語言,因此我無法在這場辯論中添加任何內容,而且這些問題中的大多數可能已經得到解決。我主要注意到,從使用者界面的角度來看,ibus 不能很好地與非 GTK 桌面環境集成,但對於基於 GTK 的 DE 可能還不錯。
然而,ibus 是 Gnome 的預設 IM 這一事實並不意味著它是強制性的。您可以使用任何其他您喜歡的輸入法,或者根本不使用。IM 配置是通過環境變數完成的。但是除了當你只使用 GTK+ 應用程序(我對此表示懷疑)之外,你應該設置的不僅僅是
GTK_IM_MODULE
. 設置輸入法的正確方法是:export GTK_IM_MODULE="fcitx" export QT_IM_MODULE="fcitx" export XMODIFIERS="@im=fcitx"
如果是 fcitx 或
export GTK_IM_MODULE="ibus" export QT_IM_MODULE="ibus" export XMODIFIERS="@im=ibus"
在 ibus 的情況下。uim 以同樣的方式工作。如果要顯式禁用任何輸入法,請使用以下設置:
export GTK_IM_MODULE="gtk-im-context-simple" export QT_IM_MODULE="simple"
空字元串也可以。
您可以在系統範圍內
/etc/profile
(或分別在內部的專用文件/etc/profile.d
)或本地設置這些變數~/.xprofile
。在使用圖形登錄管理器(如 GDM、SDDM、KDM 或 LightDM)登錄系統時,將其設置為~/.bashrc
或~/.profile
不會確保執行這些行。如果您使用 XDM、Slim 或 開始您的 X 會話startx
,您需要將這些行放入~/.xinitrc
.如果您配置了 ibus 以外的輸入法,請在之後轉到 Gnome 設置並確保禁用任何與 ibus 相關的設置,尤其是所有鍵盤快捷鍵。或者,使用以下命令告訴 Gnome 不要觸摸您的鍵盤設置:
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
或完全解除安裝 ibus。
現在 XIM 呢?XIM 是一個相當過時的輸入法協議,ibus 和 fcitx 都僅出於遺留支持的原因而實施。現在沒有真正的理由要在這兩者上使用 XIM。您想要設置的唯一原因
GTK_IM_MODULE="xim"
是覆蓋 GTK 的硬編碼 ComposeKey 設置。回答您的另一個問題:除了查看環境變數或知道您的系統上安裝了哪些 IM 之外,我認為目前沒有辦法檢測哪種輸入法處於活動狀態。如果
GTK_IM_MODULE
沒有設置,GTK 會根據 中的配置選擇一個內置的 IM/etc/gtk-2.0/gtk.immodules
。GTK 3.0 查找/usr/lib/gtk-3.0/3.0.0/immodules.cache
由gtk-query-immodules-3.0
.
GTK_IM_MODULE
設置為的原因xim
可能是某個地方的一些雜散變數定義/etc/profile
,/etc/profile.d/*
或者您的任何其他本地或全域 shell RC 文件。如果您覺得有必要,請隨意取消設置或覆蓋此變數。但是,根據這個Gnome 錯誤報告評論,我假設配置的值
gsettings
覆蓋了GTK_IM_MODULE
為 DBus 啟動的應用程序設置的值。因此,至少您的 Gnome 應用程序目前可能正在使用gtk-im-context-simple
,這實際上意味著標準行為(即沒有 ibus 或任何其他專用 IM)。