设置输入法

你可以选择使用 ibus 或者 fcitx

设置 ibus

  1. 安装 ibusibus-libpinyin (或 ibus-rime )。 由于 ibus-setup 在运 行时依赖 dconf ,所以你需要同时安装 dconf

    例: /etc/config.scm

    (operating-system
      (packages (cons* ibus ibus-libpinyin dconf
    		   %base-packages))
      ...
      )
    
  2. 设置环境变量。

    如果你使用GDM、SDDM等登录管理器(Login Manager/Display Manager),建议通过 ~/.pam_environment 文件设置用户的环境变量。

    例: ~/.pam_environment

    GTK_IM_MODULE DEFAULT=ibus
    QT_IM_MODULE DEFAULT=ibus
    XMODIFIERS DEFAULT=@im=ibus
    # 如果使用非Gnome的桌面可能会导致dconf不可用,需要加上这行
    GSETTINGS_BACKEND DEFAULT=keyfile
    
    GUIX_GTK2_IM_MODULE_FILE DEFAULT=/run/current-system/profile/lib/gtk-2.0/2.10.0/immodules-gtk2.cache
    GUIX_GTK3_IM_MODULE_FILE DEFAULT=/run/current-system/profile/lib/gtk-3.0/3.0.0/immodules-gtk3.cache
    

    如果把 ibus 安装到user profile里,与上面类似,请替换这两个环境变量(但是作 者没验证过是否可行):

    GUIX_GTK2_IM_MODULE_FILE DEFAULT=${HOME}/.guix-profile/lib/gtk-2.0/2.10.0/immodules-gtk2.cache
    GUIX_GTK3_IM_MODULE_FILE DEFAULT=${HOME}/.guix-profile/lib/gtk-3.0/3.0.0/immodules-gtk3.cache
    

    如果你想使用传统的login shell配置文件方式设置环境变量,请修改对应login shell 的配置文件。bash用户修改 ~/.profile 文件,zsh用户修改 ~/.zprofile 文件。

    注意:

    Guix里的GDM不会自动执行用户的login shell,所以 ~/.profile 文件里的环境变 量在登录之后不会生效。推荐使用SDDM。

    例:

    export GTK_IM_MODULE="ibus"
    export QT_IM_MODULE="ibus"
    export XMODIFIERS="@im=ibus"
    # 如果使用非Gnome的桌面可能会导致dconf不可用,需要加上这行
    export GSETTINGS_BACKEND="keyfile"
    
    export GUIX_GTK2_IM_MODULE_FILE=/run/current-system/profile/lib/gtk-2.0/2.10.0/immodules-gtk2.cache
    export GUIX_GTK3_IM_MODULE_FILE=/run/current-system/profile/lib/gtk-3.0/3.0.0/immodules-gtk3.cache
    
  3. 如果你曾经安装过 ibus ,请删除 ~/.cache/ibus 这个文件夹。不匹配的 ~/.cache/ibus 可能导致 ibus 无法启动。这是一个已知的bug。

    rm -r ~/.cache/ibus
    
  4. 运行 ibus-daemon --xim --replace --daemonize 以启动 ibus-daemon

    ibus-daemon --xim --replace --daemonize
    
  5. 运行 ibus-setup 进入设置界面,添加和设置输入法。

    ibus-setup
    
  6. 好了,你可以使用 ibus 来输入中文了。

重要:

如果 ibus 无法正常启动,请删除 ~/.cache/ibus 之后再尝试一次。如果你更新了 ibus 软件包,也需要删除 ~/.cache/ibus 。这是一个已知的bug。

设置 fcitx

@pmeiyu 不使用fcitx,此段略。

社区CI