這件事情其實已經發生了很久,只是我在Kubuntu上從沒在Chrome上輸入過中文,所以都沒發現。但是,一經發現,我才發現,連Edge都受影響。這下子事情就大條了,非解決不可。發現的原因是,當我想在Chrome上使用Gemini時,想輸入中文,卻發現Fcitx5無法切換成中文輸入法,無論是倉頡或是新酷音都不行!上網查才發現,那是Fcitx5和Wayland不相容所導致……。
由於我的Kubuntu用的是25.04版,而且一直有更新,換句話說,你可以看作,Fcitx5至今並沒有解決掉這個問題,它仍然只支援XFree86。換句話說,我必須換掉它,我決定先參考同樣已經換成Wayland的Zorin OS用的是哪套輸入法系統?打開星期一才裝好的Zorin OS 查看後,發現它用的是ibus,當機立斷,把輸入法系統全換成ibus。
sudo apt purge fcitx5*
sudo apt autoremove
sudo apt install ibus ibus-chewing ibus-table
並且把倉頡輸入法 ibus-cangjie 也安裝上去。
一切順利。但是Chrome沒問題了,可是等到了要用 Kate 打一篇純文字的時候又出現問題了。
倉頡輸入法通常是連打好幾個字根碼後,再按下空白鍵顯示或選字,才是一整個字的輸入程序。然而,現在變成了「打入任何一個字碼,就會立刻顯示,而不是等打入空白才選字」。這就完了,根本無法正確使用倉頡輸入法。後來更發現,其實在 Visual Studio Code 輸入中文字也會這樣,原本用 Fcitx 5 還能正常使用倉頡輸入中文字的,為了瀏覽器們把 IM 改成 ibus 反而連輸入都不行!
如果是從前,我就直接放棄。但是這次有 ChatGPT,我就善用它來幫我找到解決方法。
其實儘管有 ChatGPT,我仍然花了將近一整個下午才找到解決方法。其實,結論很簡單:
🛠 檢查 im-config 的設定檔
檢查:
cat ~/.xinputrc
如果有:
run_im ibus
那 IBus 就會在 KDE Wayland 啟動時自動被插入環境變數:GTK_IM_MODULE、QT_IM_MODULE 和 XMODIFIERS。
✔ 如果你看到 .xinputrc 有 ibus
你必須改成:
run_im none
或直接刪除:
rm ~/.xinputrc
因為 KDE Wayland 必須使用自己的 IBus Wayland 啟動方式,不可以使用 im-config 設定 XIM 那套。
我後來就是把 run_im 設成 none。然後……千萬要記得,重新啟動電腦,讓設定 active。
要這樣改 CharGPT 有解釋原因:
✔ 為什麼這樣就會正常?
KDE(Wayland)使用自身機制處理 text-input(如 Text Input Protocol),而 .xinputrc 這種 X11 時代的設定反而會造成衝突。
把它改成 run_im none → 等於不干擾 KDE 的 Wayland 原生輸入法流程 → 問題自然消失。
我只是想不通,既然已經知道 Fcitx 5 不支援 Wayland,Kubuntu 就應該把預設安裝的 text-input method 改成iBus。而且預設就是把 .xinputrc 移除掉。
我為什麼會這樣抱怨?因為我後來發現 Fedora KDE 就是這樣做!Kubuntu 為什麼不這樣做?
沒有留言:
張貼留言