Fcitx (Flexible Input Method Framework) 是 Linux 下最靈活、模組化、桌面整合度最高的輸入法框架之一。本文系統梳理 Fcitx 的核心環境變量機制、源碼/RPM/發行版倉庫三種安裝方式、圖形/命令行配置、自啟動掛載、常見 Locale 衝突排查,覆蓋 Ubuntu、CentOS、Arch 等主流發行版,助你輕鬆部署五筆、拼音、雙拼、碼表等多引擎輸入環境。
X 窗口系統通過 XIM (X Input Method) 協議實現輸入法客戶端與服務端通信。關鍵環境變量:
XMODIFIERS="@im=fcitx":告訴應用程序連接名為 "fcitx" 的 XIM 服務端。GTK_IM_MODULE=fcitx / QT_IM_MODULE=fcitx:GTK/Qt 應用直接加載 fcitx IM 模組 (方式更高效、功能更全),優先級高於 XMODIFIERS。LANG/LC_CTYPE:必須為 UTF-8 語系 (如 zh_CN.UTF-8),en_US 會導致無法輸入中文。生效順序:登入 Shell → 讀取 ~/.bashrc/~/.xprofile → 啟動 X Session → 讀取 /etc/X11/xinit/xinput.d/ 或 ~/.xinput.d/ → 啟動桌面自啟動程序。務必保證所有層級環境變量一致,否則會出現「終端能輸入但圖形應用不能」或反之的詭異現象。
| 發行版 | 命令 | 核心包 | 引擎包示例 |
|---|---|---|---|
| Ubuntu/Debian | apt install fcitx5 fcitx5-chinese-addons fcitx5-config-qt | fcitx5 (新版) | fcitx5-pinyin, fcitx5-table-wubi |
| CentOS/RHEL 7+ | yum install fcitx fcitx-pinyin fcitx-table-wubi fcitx-configtool | fcitx 4.x | fcitx-sunpinyin, fcitx-rime |
| CentOS 5/6 (EPEL) | yum --enablerepo=epel install fcitx fcitx-pinyin fcitx-table-wubi | fcitx 4.x | 同上 |
| Arch/Manjaro | pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-config-qt | fcitx5 | fcitx5-table-extra |
| Fedora | dnf install fcitx5 fcitx5-chinese-addons | fcitx5 | fcitx5-bamboo (越南語) |
注意:Fcitx 5 (新一代) 與 Fcitx 4.x 配置路徑、模組名稱不同,環境變量均為 fcitx,但模組名為 fcitx5 (Qt) / fcitx (GTK)。
# 依賴 (Ubuntu 例)
apt build-dep fcitx
apt install cmake libgtk-3-dev libqt5widgets5 libxkbfile-dev libxml2-dev gettext
# 編譯安裝 fcitx 5
git clone https://github.com/fcitx/fcitx5.git
cd fcitx5
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/fcitx5 ..
make -j$(nproc)
sudo make install
# 環境變量指向自定義路徑
export PATH=/usr/local/fcitx5/bin:$PATH
export XDG_DATA_DIRS=/usr/local/fcitx5/share:$XDG_DATA_DIRS
# 下載對應架構包
wget https://example.com/fcitx-4.2.9.7-1.el7.x86_64.rpm
rpm -ivh fcitx-*.rpm # 或 dpkg -i
# 建立文件 (需 root)
cat > /etc/X11/xinit/xinput.d/fcitx <<'EOF'
XIM=fcitx
XIM_PROGRAM=/usr/bin/fcitx
XIM_ARGS=""
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
DEPENDS="fcitx"
EOF
# 切換輸入法 (需安裝 im-chooser / imsettings)
imsettings-switch fcitx # 或 im-switch -s fcitx (舊版)
mkdir -p ~/.xinput.d
cat > ~/.xinput.d/zh_CN <<'EOF'
XIM=fcitx
XIM_PROGRAM=fcitx
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS="@im=fcitx"
EOF
# ~/.bashrc (登入 Shell 讀取)
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export LANG=zh_CN.UTF-8
export LC_CTYPE=zh_CN.UTF-8
# ~/.xprofile (圖形登入讀取,推薦統一放這裡)
# 內容同上
# 創建 .desktop 文件
mkdir -p ~/.config/autostart
cat > ~/.config/autostart/fcitx.desktop <<'EOF'
[Desktop Entry]
Type=Application
Name=Fcitx
Exec=fcitx -d
X-GNOME-Autostart-enabled=true
EOF
im-config (舊版 im-switch):sudo apt install im-config| 現象 | 排查步驟 | 解決方案 |
|---|---|---|
| 無法輸入中文,候選窗不出現 | 1. echo $XMODIFIERS $GTK_IM_MODULE $QT_IM_MODULE2. fcitx-diagnose 官方診斷工具3. locale 檢查語系 | 統一環境變量為 fcitx,確保 LANG=zh_CN.UTF-8,重啟 fcitx 或重新登入 |
| 終端能輸入,圖形應用不能 (或反過來) | 檢查 ~/.bashrc vs ~/.xprofile vs /etc/X11/xinit/xinput.d/ 不一致 | 以 ~/.xprofile 為準,移除衝突定義,重新登入 |
| 五筆碼表缺失/無法選擇 | fcitx-configtool → 輸入法 → 添加 → 搜尋 wubi/table | 安裝 fcitx-table-wubi / fcitx5-table-wubi / fcitx-table-extra |
| 候選窗字體過小/皮膚醜陋 | fcitx-configtool → 界面 → 調整字體、主題、候選窗行數 | 安裝 fcitx-skin-* / fcitx5-skin-* 主題包 |
| Wayland 環境下無法輸入 | Fcitx 5 原生支援 Wayland,Fcitx 4 需 XWayland | 升級 Fcitx 5,確保 QT_QPA_PLATFORM=wayland、GDK_BACKEND=wayland |
# 安裝 Rime (支援五筆、拼音、注音、倉頡、自定義方案)
# Ubuntu
apt install fcitx5-rime # fcitx5
# 或
apt install fcitx-rime # fcitx 4
# 配置:~/.local/share/fcitx5/rime/ 或 ~/.config/fcitx/rime/
# 修改 default.custom.yaml 啟用想要的方案
patch:
schema_list:
- schema: wubi_pinyin # 五筆拼音混輸
- schema: luna_pinyin # 朙月拼音
- schema: double_pinyin_flypy # 小鶴雙拼
Fcitx 部署的核心在於 環境變量一致性 (XMODIFIERS/GTK_IM_MODULE/QT_IM_MODULE/LANG) 與 自啟動機制正確掛載。優先使用發行版原生倉庫安裝,配合 fcitx-diagnose 一鍵診斷,配置 ~/.xprofile 統一管理環境變量,引入 Rime 引擎獲得極致定製體驗。掌握這套方法論,無論 Ubuntu、CentOS、Arch 還是 Wayland 新世代,都能輕鬆構建專屬的高效中文輸入環境。