GitHub
logo SHORiNのARCH
Arch Linux Guide > Arch Linux > 基础配置 > 中文输入法

中文输入法

目录


常用的输入法框架有 Fcitx5 和 IBus。GNOME 桌面和 IBus 的兼容会更好,配置过程也更简单,所以推荐使用 IBUS。除 GNOME 外的其他桌面和合成器都推荐使用 Fcitx5。

ibus

[展开/收起] GNOME 和 IBus 兼容性好,无需配置,开箱即用。

参考:Rime - Arch Linux 中文维基 | 可选配置(基础篇) | archlinux 简明指南 | RIME · GitHub

  1. 安装 IBus-rime

    sudo pacman -S ibus ibus-rime rime-ice-git
    

    ibus是ibus输入法的基本包

    ibus-rime是中州韵

    rime-ice是雾凇拼音输入法方案

  2. 在 GNOME 的设置中心 > 键盘 > 添加输入源 > 汉语,里面找到rime 并添加,如果没有的话登出一次

  3. 编辑配置文件设置 rime 的输入法方案为 ice 雾凇拼音

    vim ~/.config/ibus/rime/default.custom.yaml
    

    如果没有文件夹的话自己创建。mkdir ~/.config/ibus/rime/ 创建文件夹,touch default.custom.yaml 创建文件。写入以下内容:

    patch:
        # 这里的 rime_ice_suggestion 为雾凇方案的默认预设
        __include: rime_ice_suggestion:/
    

    默认使用 super+空格切换输入法,可以在设置里修改。第一次切换至 rime 输入法需要等待部署完成。

  4. 可选:安装扩展自定义 IBus

    商店搜索 extension 安装蓝色的扩展管理器,或者用命令安装

    flatpak install flathub com.mattjakeman.ExtensionManager
    

    安装两个扩展:

Fcitx5

  1. 安装基础框架

    sudo pacman -S fcitx5-im
    
    # fcitx5-im 包含了 fcitx5 的基本包
    
  2. 安装中文输入方案

    你可以自己选择要安装的输入方案,因为我使用全拼,所以本文主要是全拼方案的教程。

    • 中文输入合集 fcitx5-chinese-addons

      这里面包含了所有常用的中文输入方案(拼音、五笔、双拼等等)。安装简单,但是输入效果一般,不推荐使用。

      sudo pacman -S fcitx5-chinese-addons
      
    • RIME 中州韵引擎+雾凇拼音

      现有两大主流方案,万象和雾凇。万象的全拼分词效果很差,所以全拼用户强烈推荐使用雾凇,双拼用户推荐使用万象。

      1. 安装 RIME(中州韵)+雾凇拼音

        sudo pacman -S fcitx5-rime rime-ice-git
        

        fcitx5-rime 是输入法引擎。

        rime-ice-git 雾凇输入方案,这个包需要从 AUR 或者 archlinuxcn 安装。

        其他方案:rime-wanxiang-pinyin 万象拼音(这个包在 archlinuxcn 上);rime-wanxiang-flypy 万象小鹤双拼(archlinuxcn 源);fcitx5-mozc 日语输入法;rime-wubi 五笔输入法。

        现在打开 fcitx5-configtool 就可以添加 rime(中州韵) 到输入法列表中了,添加完成后重启输入法,Ctrl+空格切换到 RIME 后会自动初始化。默认的输入方案是繁体的 明月拼音,按下 F4 可以打开设置菜单调整为简体。下面我们编辑配置文件将默认输入方案改成雾凇拼音。

      2. 编辑配置文件启用 RIME 雾凇拼音

        mkdir -p ~/.local/share/fcitx5/rime
        vim ~/.local/share/fcitx5/rime/default.custom.yaml
        

        第一行命令 mkdir -p 检查文件夹是否存在,不存在的话创建。第二行编辑配置文件。

        写入以下内容设置 RIME 的默认方案为雾凇拼音:
        
        patch:
          # 这里的 rime_ice_suggestion 为雾凇方案的默认预设
          __include: rime_ice_suggestion:/
        

        重启输入法之后默认输入方案就变成雾凇拼音了。

      3. 可选:F4 在多个输入方案间切换

        用 ls /usr/share/rime-data/*.schema.yaml 命令可以看到当前所有可用的输入方案,去掉文件名的 .schema.yaml 就是 schema 名,写进 default.custom.yaml 后可以在 F4 菜单里切换不同的输入方案,以下是示例(注意缩进,RIME 的配置文件对缩进很严格):

        patch:
          schema_list:
            - schema: luna_pinyin_simp
            - schema: rime_ice
            - schema: wanxiang
            - schema: double_pinyin_flypy
            - schema: wubi86
            - schema: bopomofo
        

        luna_pinyin_simp 是 RIME 自带的明月拼音;wanxiang 是万象拼音;double_pinyin_flypy 是小鹤双拼(由 rime-ice-git 提供);bopomofo 是注音输入法。

      4. 可选:配置输入法模型

        推荐给雾凇拼音接入万象的语法模型,可以提高长句联想效果。你可以现在尝试打 苍茫的天涯是我的爱,大概率会打出 苍茫的填鸭式我的爱,如果配置了语法模型就可以解决这个问题。

        1. 安装模型

          可以直接从 AUR 或者 archlinuxcn 安装:

          yay -S rime-wanxiang-gram-zh-hans
          

          或者从 GitHub 手动下载:点击此处下载模型,下载完成后把模型放在 ~/.local/share/fcitx5/rime/。

        2. 编辑雾凇拼音的配置文件

          vim ~/.local/share/fcitx5/rime/rime_ice.custom.yaml
          

          写入:

          patch:
            "grammar/language": wanxiang-lts-zh-hans
          
        3. 重新启动输入法

          现在再打 苍茫的天涯是我的爱 试试。

      5. 可选:接入LLM大模型进行云拼音

        这是我自己的项目,功能是给 RIME 输入法接入大模型进行拼音联想。把拼音传给大模型,让大模型猜出正确的句子,一键安装,TUI 图形化界面修改配置,感兴趣的可以试试。

      6. 可选:默认使用英文标点

        雾凇拼音默认输出中文标点(,。?!)。如果你日常聊天、写代码更习惯英文标点,可以让它默认就处于英文标点状态,不用每次手动切换:

        vim ~/.local/share/fcitx5/rime/rime_ice.custom.yaml
        

        写入:

        patch:
          # switches 是方案里的开关列表,@1 即第二项「中英标点」开关
          # reset: 1 表示每次启动都重置到第二个状态,也就是英文标点
          "switches/@1/reset": 1
        

        如果前面配置语法模型时已经创建过这个文件,把 "switches/@1/reset": 1 加进已有的 patch: 里即可,不要出现两个 patch:。

        重启输入法生效。之后想临时切回中文标点,按 Ctrl+Shift+3 即可。

      安装到这里结束,接下来是配置的部分。

  3. 调整系统设置

    • GNOME 的话

      1. 打开 Fcitx5 配置添加 RIME。

      2. 安装扩展

        商店搜索 extension,安装蓝色的 extensionmanager,然后在扩展商店安装 input method panel 扩展。

    • KDE 的话

      1. 打开 系统设置 > 键盘 > 虚拟键盘,选择 fcitx5 wayland 启动器,记得 应用。
      2. 系统设置 > 语言和时间 > 输入法,添加 rime(中州韵)。配置全局选项 可以设置切换输入法的快捷键。配置附加选项 可以进行一些自定义设置。
    • Wayland 合成器的话

      1. 打开 fcitx5配置 进行设置。

      2. 在合成器配置文件里设置自动启动 Fcitx5。

        • Niri

          spawn-at-startup "fcitx5"
          
  4. 可选:美化

    浏览器搜索 fcitx5 themes,下载自己喜欢的主题放到 ~/.local/share/fcitx5/themes 目录下。在 fcitx5配置 里的 经典用户界面 里进行设置。

  5. 可选:RIME 自定义词库

    RIME 的词库是离线的,无法打出热词,这个时候就需要自定义词库。如果你觉得默认的联想不适合你的使用场景,也可以自定义词库。以下是一个简单的方法,了解方法之后你甚至可以给 AI 提供素材,根据你的使用场景创建专属于你自己的自定义词库。

    1. 在 ~/.local/share/fcitx5/rime 目录下新建 custom_phrase.txt。

      vim ~/.local/share/fcitx5/rime/custom_phrase.txt
      
    2. 按照这个格式写入自定义词库:词语<TAB>ciyu<TAB><可选设置权重>

      <TAB> 代表制表符(Tab 键)分割,不能使用空格;ciyu 是具体单词或者短语的拼音;<可选设置权重> 代表该词在候选列表中的排序高低,数字越大越高。

      以下是一个示例配置:

      # encoding: utf-8
      # 注释以 # 开头
      异环    yihuan    100
      异幻  yihuan  99
      腾讯    tx
      梦里不知身是客,一晌贪欢    shangmengtanhuan
      
    3. 重启输入法

      fcitx5 -r
      

    效果如图

    • 权重排序

    • 自定义短语

接下来的内容稍微涉及了一点输入法工作原理,如果觉得有些难理解的话可以让 AI 辅助进行阅读,如果不想看的话可以按照下面这个代码块的命令进行设置,出问题再说:

# 创建用户家里的环境变量配置目录,编辑输入法环境变量
mkdir -p ~/.config/environment.d/
vim ~/.config/environment.d/ime.conf

写入以下内容:

XMODIFIERS=@im=fcitx
QT_IM_MODULES="wayland;fcitx"
QT_IM_MODULE=fcitx
SDL_IM_MODULE=fcitx
  1. 了解如何让输入法正常工作

    fcitx5_wiki:Using_Fcitx_5_on_Wayland

    让输入法正常工作主要有两种方式,其一是用输入法模块走 D-Bus 总线跟输入法通信的传统方式,其二是用 Wayland 协议以 Wayland 合成器为中间人跟输入法通信的现代方式。

    对于前者,首先软件要适配输入法模块,我们再设置对应的环境变量告诉软件使用哪个模块,输入法就可用了。举个例子,typora 这个 Markdown 编辑器支持 GTK 的输入法模块,那么我们就可以设置 GTK 的输入法模块环境变量通过该模块使用输入法。

    对于后者,软件需要适配 Wayland 的 text-input 协议,输入法框架要支持input-method协议,合成器同时支持这两类协议,通常无须配置环境变量输入法就能正常工作。text-input协议和input-method协议的版本必须匹配,但通常无须在意这个事情。举个例子,GNOME 的文本编辑器支持 text-input-v3,fcitx5 支持 input-method-v2,Niri 同时支持 text-input-v3 和 input-method-v2,输入法就可用了。

    以下是常用的输入法模块对应的环境变量:

    • GTK_IM_MODULE 适用于 GTK2/3/4 应用和以 X11/XWayland 运行的 Electron/Chromium 应用。

    • QT_IM_MODULE 适用于 Qt 应用。

    • QT_IM_MODULES 适用于 Qt6.7 及以后的版本的 Qt 应用。

    • XMODIFIERS XIM 协议。在 Wayland 环境下仅适用于 XWayland 兼容层运行的 Xlib/GTK2/Qt4 应用。

    • SDL_IM_MODULE 适用于 SDL 应用。这一项比较特殊,SDL 没有模块文件,XWayland 运行的 SDL 应用会走 XIM,Wayland 运行的 SDL 应用只要合成器提供了 text-input-v3 就直接走 Wayland 协议,这个环境变量只在合成器不提供 v3 协议时生效,让 SDL 改用 D-Bus 和输入法通信。

    • --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime --wayland-text-input-version=3

      这一项比较特殊,不是环境变量,而是 Electron/Chromium 应用的命令行参数,典型的 Electron 应用有LinuxQQ、夸克等。这段参数会让软件以 Wayland 运行,走 Wayland 的协议。不用全写,通常只写--ozone-platform=wayland就行,有问题再说。

      --enable-features=UseOzonePlatform启用 Ozone 抽象层(跨平台兼容相关);

      --ozone-platform=wayland让 Ozone 以 Wayland 运行;

      --enable-wayland-ime 启用 Wayland 输入法支持;

      --wayland-text-input-version=3设置协议版本。

  2. 了解配置文件位置

    记住下面这些编辑环境变量的地方,尤其注意调整单个应用的环境变量的方法。

    • 系统全局环境变量

      /etc/environment

    • 用户空间环境变量

      ~/.config/environment.d/目录下,需新建*.conf文件。*.conf中的星号叫通配符,代表任意字符。

    • 调整单个应用的环境变量或参数

      需要复制/usr/share/applications中的.desktop到用户个人的~/.local/share/applications中后修改Exec=行,这是该.desktop文件启动时使用的命令。手动处理比较繁琐,推荐从 AUR 安装pins-git进行编辑。

      环境变量用env命令在命令前传入:Exec=env GTK_IM_MODULE=fcitx linuxqq;命令行参数本质是命令的选项,所以接在命令的后面:Exec=linuxqq --ozone-platform=wayland %U。

    • 窗口管理器

      Niri、Hyprland这样的窗口管理器的配置文件中通常拥有配置环境变量的地方的。

  3. 正确设置环境变量

    参考 Fcitx5 的 Wiki,以下是我推荐的配置

    先在任意设置环境变量的地方配置基础的:

    mkdir -p ~/.config/environment.d/
    vim ~/.config/environment.d/ime.conf
    

    写入以下内容:

    # 支持 XIM 协议的 XWayland 应用走 XIM
    XMODIFIERS=@im=fcitx
    
    # QT6.7 及以后的应用能走Wayland走Wayland,走不了 Wayland 走 Qt 的输入法模块
    QT_IM_MODULES="wayland;fcitx"
    
    # 其他 Qt 应用走 Qt 的输入法模块
    QT_IM_MODULE=fcitx
    
    # 在合成器不提供 v3 时生效,让 SDL 改用 D-Bus 和输入法通信。
    SDL_IM_MODULE=fcitx
    

    然后是 Electron 和 GTK 应用的设置

    # 编辑 gtk2.0 的配置文件,让 XWayland 运行的 GTK2.0 应用走 GTK 的输入法模块
    vim ~/.gtkrc-2.0
    

    写入:

    gtk-im-module="fcitx"
    

    然后是 GTK3.0 和 4.0 的配置文件,以 XWayland 运行的时候走 GTK 的输入法模块

    mkdir -p ~/.config/gtk-3.0
    vim ~/.config/gtk-3.0/settings.ini
    
    [Settings]
    gtk-im-module=fcitx
    
    mkdir -p ~/.config/gtk-4.0
    vim ~/.config/gtk-4.0/settings.ini
    
    [Settings]
    gtk-im-module=fcitx
    

    之所以在配置文件中写而不是在设置环境变量的地方写,是因为环境变量优先级最高,如果以 Wayland 运行的 GTK 软件被设置了 GTK 的输入法模块环境变量,可能会出现闪烁、错位、无法输入等异常。而写在 GTK 配置文件中的内容优先级是最低的,当软件以 Wayland 运行时这些设置会被代码中硬编码的回退值覆盖,所以这些设置对以 Wayland 运行的 GTK 软件不生效,由此避免了异常。

    配置结果如下图:

    cat命令打印文件内容;grep命令过滤输出内容

输入法异常的解决办法

如果遇到了漏字、删不掉最后一个字母、大写锁定卡英文等异常

从AUR安装 fcitx5-shorin-patched-git 后重启输入法。

yay -S fcitx5-shorin-patched-git

下一节:软件安装相关