如何在Pop!_OS 24.04 COSMIC桌面下使用中文倉頡速成輸入法
好多朋友升級到Pop!_OS 24.04之後,發現中文輸入法完全用不到。原因是Pop!_OS換了新的COSMIC桌面,COSMIC只用WAYLAND,而且只支援新版的INPUT METHOD PROTOCOL(zwp_input_method_v2)。Pop!_OS附帶的IBUS同FCITX5都是舊版本,不支援這個PROTOCOL,所以無論倉頡、速成定其他中文輸入法,通通都打不到字。
2018年我寫過一篇《如何在Ubuntu英文介面下使用中文倉頡速成輸入法》,用的是HKLUG的ibus-cangjie。今次IBUS本身都用不到,等UPSTREAM 整好不知要等到幾時,所以索性寫了一個新的輸入法:cosmic-ext-ime。
cosmic-ext-ime是直接同COSMIC的WAYLAND COMPOSITOR溝通的原生輸入法,不需要IBUS或FCITX:
- 倉頡及速成(用libcangjie2,同ibus-cangjie一樣的按鍵習慣)
- 任何RIME方案(用librime):粵拼、拼音、注音等
- 候選字視窗跟隨COSMIC的主題及螢幕SCALING
- 用COSMIC本身的SUPER-SPACE切換中英文
- COSMIC同GTK程式(FIREFOX、GNOME程式)都用到
以下是安裝及設定步驟。
一、安裝
開TERMINAL,執行以下COMMAND:
▎ sudo add-apt-repository ppa:wanleungwong/cosmic-ext-ime
▎
▎ sudo apt install cosmic-ext-ime

Add PPA

apt install
如果以前裝過ibus-cangjie或FCITX,要先清理舊設定,否則GTK程式會繼續嘗試用IBUS:
▎ im-config -n none
再檢查一下HOME目錄的.profile或.bashrc,有沒有以下幾行,有的話刪除:
▎ export GTK_IM_MODULE=ibus
▎
▎ export QT_IM_MODULE=ibus
▎
▎ export XMODIFIERS=@im=ibus
安裝完後,LOGOUT再LOGIN。輸入法會隨COSMIC SESSION自動啟動,不用手動開。
二、加入中文INPUT SOURCE
cosmic-ext-ime不會自己加一個新的切換鍵,而是跟隨COSMIC本身的INPUT SOURCE:當你切換到中文鍵盤LAYOUT時就是中文輸入,切回English時就是英文。
進入SETTINGS,選Keyboard,在Input Sources按+,SEARCH「Chinese」,加入Chinese。

入Keyboard Settings

Keyboard Settings

Add Chinese

Done
加入後,PANEL右上角會多了一個輸入法指示,顯示en或cn。

PANEL的輸入法指示
三、輸入中文
按SUPER-SPACE切換到Chinese,就可以輸入中文。打倉頡碼時,候選字視窗會顯示字根同候選字,按數字鍵選字,按SPACE選第一個字或翻頁。

倉頡候選字
如果用速成,只需打首尾兩碼,候選字會即時出現。

速成候選字
四、設定
在APP LIBRARY搜尋「Input Method」或「輸入法」,開啟Input Method Settings。所有設定即時生效,不用重新啟動。

在DOCK按這個APP SEARCH BUTTON

按INPUT METHOD SETTINGS

設定視窗
可以設定的包括:
- 輸入方式:倉頡或速成
- 倉頡版本:第三代(Windows所用的)或第五代
- 每頁候選字數
- 全形/半形標點及數字
- 字元集:Big5、HKSCS香港字,另外可以加入全部中文字、日文漢字、平假名、片假名等
五、RIME用戶
如果你習慣用RIME,在設定的Engine選RIME,就可以用任何已安裝的RIME方案,例如粵拼:
▎ sudo apt install librime-data-jyutping
然後在設定選擇方案。RIME的自訂檔案(*.custom.yaml)放在~/.local/share/cosmic-ext-ime/rime,改完按Redeploy即可。

引擎選用RIME

設定視窗的RIME方案選擇
已知限制
Pop!_OS 24.04附帶的QT 5同QT 6.4未支援WAYLAND的text-input-v3,所以QT程式暫時用不到;用FLATPAK版本的QT程式則沒有問題。X11程式亦不支援。
總結
cosmic-ext-ime是開源軟件(GPL-3),SOURCE CODE在
https://github.com/wanleung/cosmic-ext-ime 。
若遇到問題或有建議,歡迎在GITHUB開ISSUE。