过程详解

如何让 rime 输入法(小狼毫、鼠须管、中州韵)输入颜文字?和 custom_phrase.txt 的实现机制类似,我们定义一个词典 xxx.dict.yaml 文件,然后定义 name version sort 等属性,词典中的内容分为三栏

  • 上屏文本
  • 权重

rime 在三大基础桌面系统平台上的默认用户目录如下

  • 【Windows】 %APPDATA%\Rime
  • 【macOS】 ~/Library/Rime
  • 【Linux】 ~/.config/ibus/rime (0.9.1 以下版本是 ~/.ibus/rime

拿 windows 举例,在 %APPDATA%\Rime 路径下创建文件 kaomoji.dict.yaml

保存以下内容

# Rime dictionary - kaomoji
# encoding: utf-8
# ref: https://tool.lmeee.com/yanwenzi
# description: https://zh.wikipedia.org/zh-sg/%E9%A2%9C%E6%96%87%E5%AD%97
---
name: kaomoji
version: "2023-07-20"
sort: origin
...

(。・∀・)ノ kmj 1
( ̄ε(# ̄)     kmj 1
<(  ̄^ ̄)>    kmj 1

特别关注:

  1. 文件需要使用 utf-8 编码保存
  2. 上屏文本 权重 之间需要使用 tab,而不能使用空格

保存此文件之后,检查你当前使用的输入方案,比如我用的是小鹤双拼,找到文件 double_pinyin_flypy.schema.yaml 查看 translator/dictionary 项使用的是哪个词典文件,比如我的

rime颜文字1.jpg

于是全局搜索 name: rime_ice (推荐使用 vscode 打开用户数据目录)找到 rime_ice.dict.yaml 文件,接着找到 import_tables 项,增加 kaomoji 作为颜文字词库。

rime颜文字2.jpg

然后重新部署 rime 就可以通过输入 kmj 选取颜文字,之所以使用 kmj 作为 key,是因为颜文字的英文单词就叫 kaomoji,所以个人认为 kmj 作为键非常合适,在 26 键键盘上也非常好输入。

rime颜文字3.jpg

如果部署后使用 kmj 无法触发颜文字候选框,请检查是否有 custom 的文件,然后使用了 patch 语法,文件名一般是 double_pinyin_flypy.custom.yaml,然后检查 patch/translator/dictionary 使用的是什么值,GitHub 上的有些 rime 仓库用的是 luna_pinyin.extended,这时候就需要更改 luna_pinyin.extended.dict.yaml 文件,在词典中增加 kaomoji 项再重新部署即可。

rime颜文字4.jpg

我整理好的 kaomoji.dict.yaml

emoji 来源主要是这个网站提供的,包含了 400 多个颜文字条目

打开 F12 写一段 js 就能拿到所有颜文字文本

var pTags = document.querySelectorAll('#ywzList li p');

for (var i = 0; i < pTags.length; i++) {
  console.log(pTags[i].textContent);
}

现提供我整理好的 yaml 文件供大家下载,敬请使用。

下载链接 https://emby.940304.xyz:23399/f/685586dd6bb240f9aadc/ (链接将于 2024-01-17 20:28:42 过期,如果到时候过期了请再联系我)

参考