2025年11月19日 星期三

Wayland和中文輸入法相衝突發生的一連串問題及解決方法

 這件事情其實已經發生了很久,只是我在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_MODULEQT_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 為什麼不這樣做?


用 Claude 在 PsotgreSQL 的 Docker Container 中建立一個 database

Claude 是一個很強的 AI 工具,大概是我用過唯一可以和 Gemini 挑戰的 AI 工具。 它對於程式設計的能力相當強大。我這個測試證明了,不止程式設計能力很強,連資料庫的整個架構能力也是很嚇人的。 之前,我不是在 Proxmox VE 上建了一個 Zorin OS 的 ...