coldnew's blog

修正 emacs 在X11下不能使用中文輸入法的問題

最近在新買的電腦上裝新的 Gentoo Linux, 結果又遇到了除了 Emacs 外其他程式都可以使用中文輸入法(ibus, fcitx, hime, gcin ...) 的問題,因此重新來紀錄一次。

問題描述

在 X11 下面,已經確定了有設定以下環境變數 (這邊以 ibus 舉例), 可以設定在 ~/.xprofile 或是 ~/.bashrc

# -*- mode: sh -*-
############################################################
# Locales
############################################################
export LC_CTYPE="zh_TW.UTF-8"

############################################################
# Input Method
############################################################

# ibus
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus

但是這樣設定完成後, 卻只有 Emacs 不能啟用中文輸入法, 其他 GTK 程式皆可以正常輸入中文。

解決手段

我以前紀錄的解決方式是需要在 /etc/X11/xorg.conf 加入以下幾行然後重起 X11 來解決,但是這是 2012年的紀錄,目前已經不需要這樣做了

Section "Files"
    FontPath        "built-ins"
    FontPath        "/usr/share/fonts/TTF/"
    FontPath        "/usr/share/fonts/100dpi/"
    FontPath        "/usr/share/fonts/75dpi/"
EndSection

真正的問題是在於缺少了以下幾個 X11 套件

  [I] media-fonts/font-adobe-100dpi
Available versions:  1.0.3-r1 {X nls}
Installed versions:  1.0.3-r1(09時47分42秒 西元2020年02月08日)(X nls)
Homepage:            https://www.x.org/wiki/ https://gitlab.freedesktop.org/xorg/font/font-adobe-100dpi
Description:         X.Org Adobe bitmap fonts

  [I] media-fonts/font-adobe-75dpi
Available versions:  1.0.3-r1 {X nls}
Installed versions:  1.0.3-r1(09時47分55秒 西元2020年02月08日)(X nls)
Homepage:            https://www.x.org/wiki/ https://gitlab.freedesktop.org/xorg/font/font-adobe-75dpi
Description:         X.Org Adobe bitmap fonts

  [I] media-fonts/font-util
Available versions:  1.3.2-r1
Installed versions:  1.3.2-r1(00時09分35秒 西元2020年02月04日)
Homepage:            https://www.x.org/wiki/ https://gitlab.freedesktop.org/xorg/font/font-util
Description:         X.Org font utilities

因此確定系統有裝安裝上這些套件後,重起 X11 就真的可以讓 Emacs 輸入中文了~

延伸閱讀

On this page