在 Linux 上用 Telegram Desktop 打不到中文?

修正 Telegram Desktop 及其他 Qt 軟件在 GNOME Wayland 下的 iBus 中文輸入問題

Koala Yeung
Apr 15, 2020 · 3 min read
你試過在 GNOME 上用倉頡中文輸入法打字,卻打出英文字母嗎?

剛更新了桌面,發覺在 Telegram Desktop 上無法輸入中文。當然可以使用原⃟力⃟耐性去慢慢在其他地方打字剪貼,但速度實在太慢,何況明明簡單的打字問題,正常人又怎會甘心?

思前想後,決定去報告問題。然後在 ilya-fedin 大大的協助下,發現較新版本的 iBus 會參考 $WAYLAND_DISPLAY 參數決定 socket 的名稱,而 Qt 暫時還未適應這個轉變,而引用了錯誤的 iBus socket,導致無法收到任何 iBus 的輸入,而只能顯示英文字母。

同樣的問題應該適用於 .deb / .rpm / tarball 安裝的任何 Qt 軟件。

為甚麼使用 Flatpak 沙盒包裝反而沒有問題?

原來為了解決 Flatpak 環境的輸入問題,Flatpak 修改了軟件與輸入法溝通的特性,不會透過正常的 org.freedesktop.portal.IBus 介面接受輸入,改用 org.freedesktop.IBus.Portal 介面。

除了使用 Flatpak 打包外,你也可以用環境參數IBUS_USE_PORTAL=1強迫普通 Linux 包裝軟件轉用相同的特性 [參考],Qt 也已經引入相關的特性。這個大概是為了方便除錯測試的功能,意外地能幫上忙。

解決方法

經過一點閱讀,最穩妥的做法是使用 freedesktop.org標準用戶 session 環境設定檔位置 $HOME/.config/environment.d/*.conf去處理︰

mkdir -p $HOME/.config/environment.d
echo "IBUS_USE_PORTAL=1" > $HOME/.config/environment.d/99-ibus-use-portal.conf

加入之後重啟電腦(不知為甚麼,單純登出登入無用),再進入 Telegram Desktop 或者其他 Qt 軟件,你便能正常輸入中文︰

中文字能出來了!

希望這個方法也能解決你的問題。

如果能幫得上忙,請記得在下面按「👏🏻 Clap」啊 🙂

Hong Kong Linux User Group

香港LINUX用家協會

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store