为什么用 Rime?

明明对于大多数用户来说,类似搜狗输入法、微信输入法、乃至于手心输入法之类的主流输入法,已经完全够用了啊?

事实上,Rime 适合的用户,大多是:

  • 喜欢极简/干净/小而美
  • 极度反感广告
  • 有高度定制需求
  • 对输入安全有需求
  • 对输入速度有追求
  • 对切换多种输入方案有需求
  • 对输入标点快符、自定义短语有需求
  • 使用小众输入方案,如双拼、音形、形码
  • 对输入生僻字有需求,如常常输入古书、文献上的字等
  • 对输入精确的繁体字、外来字、外语字有需求
  • 部分程序员
  • 部分文案、编辑、网文写手
  • 打字圈、竞速圈用户

常见的 Rime 方案

主要面向全拼、双拼用户

  • 雾凇拼音:老牌方案包,官方设置教程,适合新手入门 Rime,适合全拼、双拼用户。字表、词库整合了 《通用规范汉字表》、华宇野风系统词库、清华大学开源词库、《现代汉语常用词表》、《现代汉语词典》、《同义词词林》、《新华成语大词典》、 腾讯词向量等等,实际使用下来,体验几乎不逊于搜狗百度的拼音输入法。
  • 白霜拼音:后起之秀,在雾凇拼音的基础上优化了词库。
  • 薄荷拼音官网教程,适合全拼、双拼、五笔用户

windows安装教程

前往官网下载安装windows客户端 小狼毫。

安装完,别急,这时候还不能用

  • 打开用户文件夹: 右键托盘,有两个图标,其中一个有右键菜单,就是我们要的。右键选择用户文件夹,打开了一个目录。
  • 清空默认方案 右键托盘,先退出算法服务(目的是退出占用),切换到其他输入法,再删除用户文件夹下所有文件。(Rime 是个平台,可以搭载任意自定义方案。它本身自带了一些示例方案,但不好用,所以都删掉)
  • 去 GitHub,下载一个自己喜欢的 Rime 方案(比如雾凇拼音),解压后复制到这个用户文件夹目录。
  • 右键托盘,重新部署。
  • (重要)等待片刻,让 Rime 自动生成方案对应的运行数据。这期间可以乱敲键盘,什么时候打的不是英文字母,就说明生成完毕了。
  • 大部分 Rime 方案包都会自带切换方案的快捷键,F4Ctrl+~ 都比较常见。这能在设置里更改。按F4切换到雾凇方案

完成以上步骤后,就可以正常打字了

你会发现默认的皮肤(配色方案、字体、字号)有点丑。可以看下文自己更改。

Android安装教程

前往官网下载安装windows客户端 同文输入法安装包(我的MIUI 选择 arm V8安装包)。

  • 打开同文输入法程序,按提示进行初始设置,然后进入 app 主界面
  • 点击配置,可以看到我们的用户目录位于根目录下的rime文件夹中
  • 去 GitHub,下载一个自己喜欢的 Rime 方案(比如雾凇拼音),解压后复制到这个rime用户文件夹目录。
  • 再次进入程序点击右上角的刷新(部署)按钮进行 方案部署,部署完成后,进入程序方案页面,将雾凇拼音(即全拼)添加进来,并在输入法中启动雾凇拼音方案。

Android主题配置

同文输入法自带的主题比较一般,可以选择自行导入第三方主题。

同文输入法的XX.trime.yaml文件就是一个主题文件。我们直接将第三方主题文件导入到用户目录下,然后重新部署一下即可应用新的主题与配色。

我选用了比较热门的主题 mytrime,此后我们可以参考官方的trime.yaml 詳解来对主题DIY进行系统性学习。

在此之前先对其中的classic.trime.yaml的结构有基本的认识,然后再在配置文件中记录我们的DIY操作。

mytrime的配置结构

  • height: 各种键盘和按键的高度,不用怎么动
  • round_corner: 按键的圆角半径,保持默认
  • style: 键盘、候选栏、按键提示等所有界面元素的字体、字号、间距、圆角、高度、模式布局及功能开关(如自动句首大写、按键纠错等)。
  • preedit: 预编辑文本的视图参数,保持默认
  • window: 候选窗口(悬浮窗)参数,保持默认
  • colors: 定义标准配色
  • preset_color_schemes: 配色方案
  • liquid_keyboard: 液态键盘(可滚动/分页键盘)的布局参数以及可切换的子键盘列表
  • tool_bar: 定义了同文输入法工具栏的按钮间距、字体,以及左侧主按钮和右侧按钮列表的视觉样式与触发动作。
  • preset_keyboards: 键盘布局,DIY的核心所在
  • preset_keys: 按键大全,供preset_keyboards选用。

mytrime主题自定义配置记录

我目前的自定义的动机来自于以下需求:

  • 默认的4行键盘布局与大厂输入法的全面屏模式(5行键盘布局)不同,导致24键的位置都偏下,大拇指进行打字时比较累,所以 24键主键盘布局要修改为5行
  • 夜间模式想换用更好看的配色
  • 想给输入法添加壁纸
  • 输入法界面配色DIY
  • 输入法字体配置
  • 其他的功能开关等小配置(比如英语句首大写)

🔻 针对主键盘改为5行的需求,我进行了如下DIY操作:

更新:最后为了避免误触,仍然选择将第五行定为空行,高度为39

首先,style中的keyboard_height会锁定键盘高度,其默认的取值可能会在行数增加的情况下,导致按键高度被迫减少,所以我将高度的取值锁定为 height中主键盘按键高度&jpgd4 乘以行数(包括工具栏),即keyboard_height取值为 。(后面继续进行微调,270为最好的数值,与大厂输入法高度完全一致)

其次,我们在 preset_keyboards 中找到了 24键布局(即default布局)的配置,我们要在其中添加第五行的配置,这一行可以充分自定义,暂时只放 google搜索 快捷键。google快捷键的样式参考自 第四行 空格键space的设置,宽度width设置为90%,两侧放置宽度为5%的空白区域。(空白区域参考第二行的配置),最终效果如图所示:

配置好之后很快会发现,google快捷键有一点缺陷,即他的搜索仅拼接了最后一次输出的字符串,而不是拼接当前光标前的所有字符 。所以根据preset_keys的既有注释,将Google按键的结尾从%s修改为%4$s。如图所示。

🔻 针对夜间模式配色的自定义,进行了如下DIY操作:

我想将preset_color_schemes中的标准配色的夜间模式修改为好看的星云配色,所以可以直接把standard配色方案的 dark_scheme 的取值改为 nebula 星云。

🔻针对输入法添加壁纸的需求,进行如下DIY操作:

首先阅读文档可知,preset_color_schemes配色方案中的candidate_background是候选区整体背景,且 keyboard_background键盘背景可铺满候选栏和导航栏(如果有)。所以我们要将 candidate_background调为透明,keyboard_background设置为背景图。

但经过反复地摸爬滚打才发现,分辨率对于能否完整显示背景图是非常重要的,所以我们要基于手机的分辨率以及输入法的长宽比例来确定 我们背景图所需要设置的分辨率。 比如我的手机短边对应的分辨率为1220,输入法的长宽比为7:6, 则 背景图的分辨率则想办法调整为1220*1050

图片的文件大小也很重要,文件过大可能会导致输入法弹出时卡顿。我们可以将图片转为webp文件,压缩率超过90%。

根据文档可知,图片需放在rime/backgrounds文件夹内,我们修改candidate_background的取值为0x00000000即透明,修改 keyboard_background取值为文件名,比如my_main.webp然后将图片文件放入rime/backgrounds,主题yaml文件放至rime根目录,重新部署一次即可生效。

🔻针对配色方案的DIY,进行如下操作:

在DIY之前,要了解不同类型的字体对象,如图所示,分别为:

  • text: 编码字体
  • label: 悬浮窗候选项序号字体(windows)
  • candidate_font: 候选字体
  • comment_font: 候选注释字体
  • hanb_font: 后备字体。用于补充候选字体(candidate_font)。
  • latin_font: 候选及候选注释拉丁字体(暂时对悬浮窗候选无效)当latin_font生效时,拉丁字符(< 0x2e80)就不再由comment_fontcandidate_font控制
  • key_font: 按键字体(click)
  • symbol_font: 符号字体(long_click 和 hint)
  • popup_font(原preview_font): 按键提示字体

我所使用的输入法壁纸与对应的配色思路和结果如下所示:

  • candidate_text_color: 候选字颜色,为了与淡蓝色的背景和谐且突出,选择了深海蓝 0x2C3E50 。
  • hilited_key_back_color:高亮按键背景,保持了原色。(但因为我调整了标准配色的透明度,所以需要为此设定无透明度的颜色)
  • key_back_color: 键盘背景色直接设置为透明,更加美观
  • key_border_color: 按键边框直接设置为透明,更加美观
  • key_symbol_color: 符号字体、编码字体与 键盘字体颜色一致
  • key_text_color: 符号字体、编码字体与 键盘字体颜色一致
  • text_color: 位于编码区光标插入点右边的编码,或者是拼音类方案中无法正常解析的空码,标记为显眼的红色
  • text_back_color: 编码区背景,设置为珍珠白避免编码字体看不清
  • popup_back_color: 按键提示字符颜色与键盘字体一致,并且设置背景色为香芋粉
  • popup_text_color: 按键提示字符颜色与键盘字体一致,并且设置背景色为香芋粉
  • key_color: 按键文字颜色均按行设置为color1,color1设置为了 深紫色 0xff5A4B8D。

🔻针对字体的DIY,进行了如下操作:

字体在style中修改,如文档和配置文件可见,字体文件类型为ttf,体设置支持设置为列表值。在 Android 10 及以上系统中,同文会以列表正序为优先级依次回落来尝试让字体显示正常。但实际上 是 必须 为列表值,这个要注意。

根据示例,字体自定义需要先在 rime 文件夹内新建 fonts 文件夹,fonts 文件夹建在共享文件夹与用户文件夹皆可(若共享文件夹存在 fonts,则字体放在用户文件夹内无效),然后将ttf字体文件放在fonts文件夹内, 最后在 配置文件中设置好文件全称即可。

ttf字体库可参考 https://www.fonts.net.cn/

  • 中文: [bear-zh-KaiXinJiuXiaoLinYuJiuZou-2.ttf]
  • 英文: [rabbit-en-LOVE-Queen-2.ttf, bear-en-Aurora-2.ttf]

🔻其他的一些小配置,作为记录:

  • 工具栏图标大小: tool_bar定义了同文输入法工具栏的按钮间距、大小、字体,以及左侧主按钮和右侧按钮列表在这个地方将所有按键都设置了 font_size 为18。
  • 参考大厂输入法皮肤,加宽popup,popup_width设置为60。
  • 空格键DIY:默认的空格键显示方案名称。我参考了 tongwenfeng.trime.yaml的样式,首先将preset_keys中的space修改,以便于无论中英文,都显示横线。同时将切换中英的mode_switch功能修改了stats显示的文案(中/英),更加好看。同时也为空格键 swipe_left等拖动方向绑定了 光标移动和 行首行尾的功能。如下所示: - {click: space, key_back_color: bkg, key_text_color: tkg, long_click: Mode_switch, swipe_down: End, swipe_up: Home,swipe_left: Left, swipe_right: Right, width: 30, key_text_size: "10", symbol_text_size: 9, key_symbol_offset_x: -1}

trime详解

TODO

自定义配置

不建议直接更改配置包自带的文件,最好是以新建 custom.yaml 文件的方式来自定义,这样的好处是,以后想要更新雾凇配置包的时候,直接把新的雾凇配置包下载回来解压,覆盖掉旧的配置文件,就不需要重新设置自定义。custom.yaml 的具体使用方法,可以搜索一下网络教程,这里不再赘述。

同步与迁移

参考文献