Fcitx5

出自 Arch Linux 中文维基

Fcitx5 是一個輸入法框架,它具有輕量級內核,並通過 addon 提供額外的語言支持。Fcitx5 接替 Fcitx

安裝[編輯 | 編輯原始碼]

安裝 fcitx5 軟件包。

fcitx5-im包組 包組提供 fcitx5 本體、#配置工具和必要的#輸入法模塊

注意: fcitx5 僅提供基本框架,且僅支持英文。如果要輸入其他語言(例如中文或日文),則需要安裝輸入法引擎(IME)。

中文[編輯 | 編輯原始碼]

日文[編輯 | 編輯原始碼]

  • fcitx5-anthy 是流行的日文輸入引擎。但是,它已不再受到積極開發。
  • fcitx5-kkc 是日文假名輸入引擎,它基於 libkkc
  • fcitx5-mozc 基於 Mozc(Google 日文輸入法的開源版本)。
  • fcitx5-skk 是日文假名輸入引擎,它基於 libskk

其他語言[編輯 | 編輯原始碼]

輸入法模塊[編輯 | 編輯原始碼]

要獲取更好的體驗,你可以根據需要安裝以下模塊。即使不安裝,輸入法在大部分的應用程式中仍可能正常工作,但你可能會遇到輸入法掛起、預覽窗口位置錯誤或沒有預覽的問題。

提示:通常,只需安裝 fcitx5-qtfcitx5-gtk 就足夠了。

使用[編輯 | 編輯原始碼]

集成[編輯 | 編輯原始碼]

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
INPUT_METHOD=fcitx
GLFW_IM_MODULE=ibus

如果使用 en_US.UTF-8 時,遇到 GTK2 無法激活 fcitx5,可專門為該 GTK2 應用程式設置輸入法為 xim,如

$ env GTK_IM_MODULE=xim <your_gtk2_application>

請勿將 GTK_IM_MODULE 全局設置為 xim,因為它也會影響 GTK3 程序。XIM 有各種問題(比如輸入法重啟之後再無法輸入),儘可能不要使用。

注意:
  • SDL_IM_MODULE 是為了讓一些使用特定版本 SDL2 庫的遊戲能正常使用輸入法。
  • GLFW_IM_MODULE 是為了讓 kitty 啟用輸入法支持。此環境變量的值為ibus為了保證所有的kitty均可啟用該功能,在基於x11的桌面環境和窗口管理器中此屬性設置為fcitx5或fcitx會導致無法啟用輸入法設置,wayland桌面不受此影響。
  • 按 fcitx5 上游推薦,環境變量的值設置為fcitx。部分並非由 Arch 從源碼編譯打包的應用程式(如從 Telegram 官方網站下載的 telegram-desktop)因兼容性的需求而需要將之設置為fcitx5
  • 當配置GTK_IM_MODULE項後,fcitx在啟動後可能彈出信息「Wayland診斷 檢測到設置了GTK_IM_MODULE,並且Wayland輸入法前端可以正常工作。推薦取消設置 GTK_IM_MODULE 以使用輸入法前端。 ...」但在Wayland下,刪除此屬性可能會導致輸入時產生漏字的情況。

KDE Wayland[編輯 | 編輯原始碼]

根據 Fcitx 5 Wiki, Plasma 5.27+ 支持 Wayland 輸入法協議第 1-3 版 (text-input-v1, text-input-v2 和 text-input-v3, 分別被 Chromium, Qt 和 GTK 使用).

要使用 Wayland 輸入法協議, 首先退出正在運行的 Fcitx 5 進程, 前往 系統設置 > 輸入設備 > 虛擬鍵盤, 選擇 Fcitx 5.

對於 XWayland 程序, 設置 XMODIFIERS 環境變量.

警吿: 勿加 GTK_IM_MODULEQT_IM_MODULE.

GNOME Wayland[編輯 | 編輯原始碼]

安裝 gnome-shell-extension-kimpanel-gitAUR 並啟用 Kimpanel GNOME Shell 拓展.

設置環境變量 XMODIFIERS QT_IM_MODULE, 註銷並重新登錄.

根據 Fcitx 5 Wiki, GNOME 支持 Wayland 輸入法協議第 3 版 (text-input-v3), 因此 GTK 應用的輸入法支持應當開箱即用, QT 與 Chromium 因不支持 text-input-v3 需要添加環境變量.

根據 Fcitx5 Wiki, 在Gnome wayland環境中的fcitx, 可能出現彈出候選窗口無法在 gnome-shell UI 上顯示。一個解決方案是使用Kimpanel擴展,此為擴展連接

Chromium[編輯 | 編輯原始碼]

參閱 Chromium#原生Wayland上運行.

隨桌面環境自動啟動[編輯 | 編輯原始碼]

注意:
  • 如果您使用的桌面環境是兼容 XDG 的(例如 KDEGNOMEXfceLXDE等),則 無需 此步驟。
  • 如果使用i3awesome等窗口管理器,需要在其腳本中添加 Fcitx5 以實現自啟動。例如,如果您使用 i3 或 sway ,可以在配置文件中添加exec --no-startup-id fcitx5 -d
  • 如果使用dwm,則需要添加 autostart 補丁。在 ~/.dwm/autostart.sh 中添加fcitx5 -d

想要 fcitx5 開機自啟,執行

$ cp /usr/share/applications/org.fcitx.Fcitx5.desktop ~/.config/autostart/

如果使用 xinit 啟動,則可以在~/.xinitrc中,在exec前添加fcitx5 &

詞庫[編輯 | 編輯原始碼]

對於 Fcitx5 的中文輸入法, 目前在倉庫裡提供了數個詞庫:

注意:
  • 詞典文件存在的目錄為 ~/.local/share/fcitx5/pinyin/dictionaries
  • .dict類型的詞典文件可以直接手動移動到詞典目錄,使用搜狗細胞詞庫下載的.scel文件無法被fcitx識別
  • 可在fcitx5-configtool中選在導入來自搜狗細胞詞庫文件,或使用scel2org5指令手動轉換

自定義詞庫[編輯 | 編輯原始碼]

一般而言,由於 fcitx5 支持 導入搜狗詞庫,因此很大程度上不需要自定義詞庫,但是 fcitx5 依然提供了相關工具。

原始詞庫文件是一個文本文件,其格式為: 漢字 拼音 頻率

在得到原始詞庫文件後,調用 libime_pinyindict "詞庫文件.txt" "詞庫文件.dict" 即可。

自定義詞庫文件放置在 ~/.local/share/fcitx5/pinyin/dictionaries

注意: 以下內容或許能提供幫助:

配置[編輯 | 編輯原始碼]

配置工具[編輯 | 編輯原始碼]

fcitx5 的配置文件位於 ~/.config/fcitx5,儘管您可以使用文本編輯器編輯配置文件,但是使用 GUI 配置顯然更方便。安裝 fcitx5-configtool 軟件包。

主題和外觀[編輯 | 編輯原始碼]

主題[編輯 | 編輯原始碼]

倉庫內的主題數量有限,如果需要更多主題,可以去 GitHub 發現更多主題。

然後前往 Fcitx5設置 -> 配置附加組件 -> 經典用户界面 -> 主題 設置主題。

注意: 如果您在 GNOME 環境下使用了 gnome-shell-extension-kimpanel-gitAUR,那麼主題設置對於 Fcitx5 不起作用。[2]

設置單行模式[編輯 | 編輯原始碼]

在拼音輸入法(或者 Rime 輸入法)的設置中,啟用「 在程序中顯示預編輯文本 」即可啟用單行模式

故障處理[編輯 | 編輯原始碼]

診斷問題[編輯 | 編輯原始碼]

當你遇到任何 Fcitx 5 有關的問題,比如 Ctrl+Space 快捷鍵在有的程序中不能工作,首先應該用 fcitx5-diagnose 命令診斷問題的原因。 fcitx5-diagnose 會列出所有 Fcitx 5 正常運行所需的前提條件,從輸出結果中通常可以找到問題的原因。

部分應用中 Fcitx 5 的單行默認無效[編輯 | 編輯原始碼]

1. 如果是 Firefox 等 gtk 應用中單行模式不生效,請安裝 fcitx5-gtk

2. 在 WPS 和 Sublime 中單行模式無效,這是 WPS 和 Sublime 自身的問題,而不是 fcitx5 的問題。[3]

WPS 無法正常呼出輸入法[編輯 | 編輯原始碼]

請參閱 WPS Office#Fcitx5 無法輸入中文

Emoji 在候選框中無法正常顯示[編輯 | 編輯原始碼]

1. 首先確保電腦上已經安裝了帶有 Emoji 的字體(例如 noto-fonts-emoji)。

2. 將字體設置為 Noto Sans CJK SC

3. 運行以下命令來 重啟 Fcitx5

$ kill `ps -A | grep fcitx5 | awk '{print $1}'` && fcitx5&

RStudio 中無法調出輸入法[編輯 | 編輯原始碼]

運行以下命令:

$ strings /usr/lib/rstudio/lib/libQt5Core.so.5 | grep "Qt 5"

找出 Qt 庫的版本,使用該版本重新編譯 fcitx5-qt 中的 libfcitx5platforminputcontextplugin.so ,再放到 /usr/lib/rstudio/plugins/platforminputcontexts/ 目錄中。

如果使用的是 rstudio-desktop-binAUR ,可直接安裝 rstudio-fcitx5AUR

在 Steam 和 Dota2 中無法使用[編輯 | 編輯原始碼]

事實上,Fcitx5 能夠在 Steam 大屏模式和 Dota2 中使用。但是需要使用 Ctrl + Space 激活輸入法而不是 Ctrl + Shift [4]

目前最新的 steam Beta 版本已經支持 fcitx5 輸入,如需使用 fcitx5 ,「設置」 -> 「界面」 -> 「參與客户端測試」 -> 「Steam Beta Update」,等待 steam 重啟更新即可。但是fcitx5 輸入支持要求電腦語言環境為 LANG=zh_CN.UTF-8。如果本身電腦的語言環境不是中文,則需要在 steam.desktop 中需要添加這個環境變量,例如Exec=env LANG=zh_CN.UTF-8 /usr/bin/steam-runtime %U -forcedesktopscaling 1.5 --gtk-version=4


使用 Wayland 輸入法協議的軟件無法獲取Wayland Popup窗口(Kde && Sway && Gnome)[編輯 | 編輯原始碼]

指使用 Wayland 輸入法協議的軟件,比如 wezterm 、gtk 軟件(如果環境變量指定為GTK_IM_MODULE=wayland)。這些軟件如果沒有進行設置,到今天為止,你得到的輸入法體驗是看不見Popup窗口,但是可以盲輸入是可以的,因為很多wm沒有完全實現input-method-v2協議。

關於qt軟件,gtk軟件對於wayland支持,根據fcitx5開發者所説

Qt 有 text-input-v2 支持,你可以通過設置 QT_IM_MODULE 為空來使用它,但它有一些關於預編輯的小問題。 此外,對於當前版本的 wayland 輸入法協議,wayland 只能有一個全局輸入上下文(具體請參考原始文章), 所以現在如果你想使用 Fcitx 5 支持的「per-application」輸入狀態可能是個問題。但是使用 Qt 的文本輸入協議有一個好處,就是輸入窗口在視覺上不會閃爍。
Gtk 有 text-input-v3 支持,但它的預編輯樣式很差,粗體字體突出顯示。此外,其surrounding text支持實現的很差。所以現在,如果您想擁有所有 Fcitx 功能,使用 GTK_IM_MODULE=fcitx 可能仍然是一個不錯的選擇。

完整文章請參考 https://www.csslayer.info/wordpress/linux/use-plasma-5-24-to-type-in-alacritty-or-any-other-text-input-v3-client-with-fcitx-5-on-wayland/

Wayland下一些GTK應用內輸入字母會自動上屏[編輯 | 編輯原始碼]

你可以單獨為軟件設置環境變量GTK_IM_MODULE=fcitx,或者在~/.config/gtk-3.0/settings.ini中添加:

[Settings]
gtk-im-module = fcitx

KDE[編輯 | 編輯原始碼]

如你所見,上文的連接貼出了當前KDE環境下解決這個問題的方法,設置中開啟fcitx5的虛擬鍵盤支持,設置中心搜索「virtual keyboard」, 選擇fcitx5並且開啟。

Sway[編輯 | 編輯原始碼]

sway 已經合併了實現 text-input-v3 協議的分支,但是仍然沒有完全實現 input-method-v2 協議,因此仍然無法顯示彈出窗口。目前有一個開放的拉取請求可以修復此問題:https://github.com/swaywm/sway/pull/7226 ,可以在 AUR 上安裝:sway-imAUR

GNOME[編輯 | 編輯原始碼]

Gnome 可以選擇安裝 kimpanel 插件。

提示和技巧[編輯 | 編輯原始碼]

如何查看選中字體的 Unicode 編碼[編輯 | 編輯原始碼]

  • 如果你需要查看文本編輯器中選中文字的 Unicode 編碼,那麼直接選中文字,然後使用快捷鍵 ctrl + alt + shift + u 可以查看選中文字的編碼
  • 如果你需要查看非編輯區域(比如本 wiki)中文字的 Unicode 編碼,那麼需要首先將該段文字複製到剪貼板,然後點擊任意一個可編輯區域(比如搜索框),然後使用快捷鍵 ctrl + alt + shift + u 可以查看剪貼板中文字的編碼

通過 Fcitx5 輸入特殊字符[編輯 | 編輯原始碼]

要輸入特殊符號,有兩種方式:

為例:

將光標定位到任意一個輸入框內,然後按下 Ctrl + Alt + Shift + U,然後輸入 circle one,您將會看到多種形式的 。alpha, beta, sigma 等同理。

在 vim 中自動切換輸入法[編輯 | 編輯原始碼]

推薦使用 fcitx.vim 插件。此插件會為不同緩衝區保持各自的插入模式輸入法狀態。

簡單的方案,可以向 ~/.vimrc 追加代碼:[2][3]

let fcitx5state=system("fcitx5-remote")
" 退出插入模式时禁用输入法,并保存状态
autocmd InsertLeave * :silent let fcitx5state=system("fcitx5-remote")[0] | silent !fcitx5-remote -c
" 2 表示之前状态打开了输入法,则进入插入模式时启动输入法
autocmd InsertEnter * :silent if fcitx5state == 2 | call system("fcitx5-remote -o") | endif

如果使用的是 neovim ,則追加上述代碼到 ~/.config/nvim/init.vim

注意: 如果您在 vim.cmd 中添加此代碼,可能需要將註釋去掉。

拼音輸入法[編輯 | 編輯原始碼]

注意: 以下功能只對 fcitx5-chinese-addons 中的拼音輸入法有效,其他輸入法請自行探索。

導入搜狗詞庫[編輯 | 編輯原始碼]

  • 對於 KDE 用户來説,可以通過 設置 -> 區域設置 -> 輸入法 -> 拼音 -> 詞典 -> 導入 來導入搜狗詞庫
  • 對於使用 fcitx5-configtool 的用户來説,需要手動打開 「Fcitx5 配置」 這個軟件,並在拼音輸入法中手動配置。

既可以導入本地詞庫也可以在線瀏覽詞庫並自動導入

雲拼音[編輯 | 編輯原始碼]

在拼音輸入法的設置頁面,你可以啟用雲拼音。但是如果你需要更改雲拼音默認的後端,則需要在 fcitx5 的全局設置裡進行更改。提供的後端有 Google, Baidu, GoogleCN

筆畫過濾[編輯 | 編輯原始碼]

在設置的拼音輸入法的「筆畫過濾」後設置快捷鍵(默認為 `) 然後在輸入文字後,按下快捷鍵,輸入法的候選框將會出現 筆畫過濾字樣,可以對詞語進行筆畫過濾,具體規則為:h 橫、s 豎、p 撇、n 捺、z 折

默認情況下,筆畫過濾是對一個句子的第一個字進行篩選,但是使用以詞定字可以在一個句子之間的不同字之間進行切換。

例如對句子「中華人民共和國」中的第三個字進行筆畫篩選,你可以在啟用筆畫過濾後連續按兩次 ]fcitx5 對其進行筆畫過濾。

注意: 默認情況下,以詞定字的快捷鍵為 [],該快捷鍵在拼音輸入法的設置中可以查看

將輸入錯誤的單詞從輸入歷史中刪除[編輯 | 編輯原始碼]

輸入過程中有可能因為誤操作寫入錯誤單詞, 此時可以通過重新輸入錯誤單詞拼音 -> 使用忘記詞彙快捷鍵(默認為 Ctrl + 7) -> 選擇錯誤單詞的對應數字刪除.

快捷鍵可以由Fcitx 配置 > "附加組件"標籤頁 > "輸入法"部分 > "拼音"齒輪圖標 > "忘記詞彙" 快捷鍵指定.

輸入自定義時間[編輯 | 編輯原始碼]

在按照前文安裝 fcitx5-lua之後, 在輸入;進入快速輸入模式後可使用如下指令:

  • ;fh可輸入特殊符號
  • ;sj可輸入當前時間, 格式默認提供3種: [15:52],[15時52分],[十五時五十三分];如果輸入;sj後按照時:分的格式輸入,可以格式化指定時間。
  • ;rq可輸入當前日期, 格式默認提供3種: [2023-07-21],[2023年7月21日],[二〇二三年七月二十一日];如果輸入;rq後按照年-月-日的格式輸入,可以格式化指定日期。

可通過修改pinyin.lua甚至imeapi.lua腳本擴展功能(注意備份).[4]

RIME/中州韻[編輯 | 編輯原始碼]

提示:所有更改皆需重新部署方可生效

導入詞庫[編輯 | 編輯原始碼]

以導入詞庫fcitx5-pinyin-zhwiki-rimeAURfcitx5-pinyin-moegirl-rimeAUR為例.

提示:將自定義詞庫放入~/.local/share/fcitx5/rime/亦可,文件名(文件名.dict.yaml)應與詞庫名統一(詞庫格式)

1.更改~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml文件(以luna_pinyin為例,其餘輸入方案修改方案名即可)

~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml
# 文件中「patch:」應只存在一個,若已存在只需粘貼後面的代碼
# 此文件用於修改特定輸入方案,把上方的luna_pinyin改為其它輸入方案名即可完成對其它輸入方案的修改
patch:
    "translator/dictionary": extended #詞典名字可自定義,與下方文件名保持一致即可

2.新建~/.local/share/fcitx5/rime/extended.dict.yaml文件

提示:導入自定義詞庫只需將詞庫名添加到「import_tables:」之後
~/.local/share/fcitx5/rime/extended.dict.yaml
# 以下禁用了默認詞庫同時不啟用默認的「八股文」詞庫及詞頻系統,如果您不希望候選詞中的出現繁體字、方框字的話
---
name: extended
version: "2021.02.19"
sort: by_weight
use_preset_vocabulary: false #是否啟用默認的「八股文」詞庫及詞頻系統,如需啟用請設為 true 。
import_tables:
  # - luna_pinyin #默認詞庫,如需啟用請取消註釋
  - zhwiki
  - moegirl
  # - 自定義詞庫名
...

模糊音設置[編輯 | 編輯原始碼]

請根據需要註釋(#)或刪除不需要的模糊音,若需增加其它模糊音,請參考明月拼音模糊音定製模板

luna_pinyin.custom.yaml文件不存在

~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml
patch:
    "speller/algebra":
        - derive/^([zcs])h/$1/ #zh,ch,sh->z,c,s
        - derive/^([zcs])([^h])/$1h$2/ #z,c,s->zh,ch,sh
        - derive/^n/l #n->l
        - derive/^l/n #l->n
        - derive/([ei])n$/$1ng/  # en -> eng, in -> ing
        - derive/([ei])ng$/$1n/ # eng->en, ing -> in
        - abbrev/^([a-z]).+$/$1/ #簡拼支持
        - abbrev/^([zcs]h).+$/$1/ #模糊音的簡拼支持
        delimiter: " '" #分隔符

如果文件存在,則粘貼patch:以下的部分到文件末尾(luna_pinyin.custom.yaml中有且只有一個patch:)

特殊符號[編輯 | 編輯原始碼]

注意: Fcitx5 已經內置了對特殊符號的支持。參閱#通過 Fcitx5 輸入特殊字符

導入rime-dict項目中symbols.dict.yaml詞庫即可在拼音中輸入希臘字母、部分數學符號及Emoji表情

示例:

希臘字母:輸入alpha即可輸出α

數學符號:輸入jifen即可輸出

特殊符號:輸入cha可輸出✕,✖

序號:輸入qi可輸出Ⅶ,⑦

Emoji表情:輸入haha可輸出😃,😆

加載 librime-lua 插件[編輯 | 編輯原始碼]

若想加載 librime-lua 插件,須在 fcitx 配置工具的 Rime 輸入法設置中添加 lua 模塊。

參考來源[編輯 | 編輯原始碼]