快轉到主要內容

實驗:透過Distrobox Container使用Ibus輸入法

分類   Linux系統 Linux好用軟體
標籤   IBus Input Method
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

在宿主機完全不安裝iBus套件的情況下,透過容器,使用基於iBus框架的中文輸入法。

構想是跑在DistroBox的容器裡面,然後透過dbus讓宿主機使用容器內的輸入法輸入文字。

為何?iBus相較於Fcitx5比較古老,發行版收錄iBus輸入法的可能性相較於Fcitx要高。並且使用iBus框架的輸入法也蠻多的,例如新酷音。不過有些Linux發行版收的iBus套件過舊且套件有限,所以利用其他發行版取得較新的iBus版本。

這或許可以作為 Flatpak版Fctix5的替代方案。

1. 測試環境
#

  • 宿主機系統:Rocky Linux 9.4
  • 宿主機桌面環境:KDE 5.27 X11
  • 容器系統版本:Ubuntu 22.04

2. 建立跑iBus容器
#

  1. 安裝 DistroBox

  2. 建立Ubuntu 22.04容器

distrobox create --image docker.io/library/ubuntu:22.04 --name ubuntu
distrobox-enter ubuntu
  1. 安裝iBus與新酷音
sudo apt install ibus-chewing
sudo apt install libcanberra-gtk*
  1. 設定iBus
ibus-setup

3. 在宿主機啟用iBus
#

  1. 不用圖形介面,最簡單的方法是在/etc/environment設定IM_MODULE環境變數指定iBus
GTK_IM_MODULE=ibus
QT_IM_MODULE=ibus
XMODIFIERS=@im=ibus
SDL_IM_MODULE=ibus
GLFW_IM_MODULE=ibus
  1. 編輯~/.bashrc,將Ubuntu容器設定為開機自動啟動,登入容器並執行iBus常駐程式。
distrobox enter -n ubuntu -- ibus-daemon -drx
  1. 重開機後應可使用,iBus預設切換輸入法的組合鍵為Windows鍵+空白鍵。

4. 實驗結果
#

雖然KDE有跳出iBus面板,但是只有Distrobox內部程式可以用iBus。宿主機程式必須用GTK_IM_MODULE=xim啟動GTK程式的情況下才可以使用iBus。

其他程式都無法使用。

5. 適用於Fcitx5的可能性?
#

或許Fcitx5可以如法炮製,不過目前看來宿主機系統也得安裝Fictx5相關套件才可以在原生GTK/QT程式啟用Fcitx5,否則Fcitx5就只能跟DistroBox容器內的程式通訊而已。

有趣的是,Flatpak的程式也可以認到DistroBox容器內的Fcitx5輸入法。

參考
#

相關文章

Ubuntu繁體中文輸入法?改用Fcitx5來輸入中文吧!
分類   Linux系統 Linux好用軟體
標籤   Fcitx Ubuntu Input Method
Linux硬碟空間不足?使用Filelight圖形軟體快速找出佔空間的檔案!
分類   Linux系統 Linux好用軟體
標籤   Disk Cleanup
Linux版GIMP安裝方法,開源免費的修圖軟體
分類   Linux系統 Linux好用軟體
標籤   GIMP

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請貼Imgur或Postimages。