自定义我的输入法

自定义我的输入法

这年头混迹赛博宇宙,零信任原则的重要性不言而喻。以个人输入法为例,鉴于一些厂商不太体面的行为预设123,选择使用离线、开源的输入法已经成为一项紧迫的需求。

4202年的现在,依然出现了4这样的报告,我怎么一点也不意外呢。

选型#

但凡做过些调研的朋友们应该都会投入rime的怀抱。rime在不同平台上有着不同的发行版,各有各的发行版配置,但主体部分还是互通的。

在其官网就可以找到下载链接,涵盖了Windows, macOS, Linux, Android,甚至还有(不确定有没有坑的第三方?的)iOS客户端。

配置#

出于对折腾的热情,我目前的主要使用平台是Arch Linux和Android,不过由于各发行版之间只有少量配置区分,这里我会按照如下三部分进行记录:

共通#

全拼#

Rime 定製指南固然十分详尽,对于新人上手却不十分友好,我选择了薄荷输入法作为自己的初始化模板。这个初始化模板已经足够好用,且使用了雾凇拼音的非常好用的词库,以至于在我只使用ibus-rime的那一段时间都并未对其本身做太多修改(尽管至今也依然如此),仅关闭了它自带的模糊拼音、五笔与比划依赖。我的版本已公开在github,同时附上我参考的原始版本。

双拼#

本着一步到位的原则,既然折腾了,干脆就顺便把听闻已久的双拼给安排了。听了朋友的推荐,我选用的是小鹤双拼的方案,顺便把薄荷拼音的一些特性整合了进来,大体修改同上,同样已公开在github,并附原始版本。

Arch Linux: ibus-rime#

Linux上的输入法一般由ibus或是fcitx管理,参考官方文档仅需修改少量配置即可:

# default.custom.yaml

patch:

"ascii_composer/good_old_caps_lock": true

"ascii_composer/switch_key":

Caps_Lock: commit_code

Control_L: noop

Control_R: noop

Shift_L: commit_code

Shift_R: inline_ascii

"menu/page_size": 9

schema_list:

- {schema: flypy}

- {schema: rime_mint}

"switcher/hotkeys":

- "Control+grave"

"switcher/save_options":

- full_shape

- ascii_punct

- simplification

- zh_hans

- emoji_suggestion

"translator/enable_encoder": true

"translator/enable_sentence": true

"translator/enable_user_dict": true

"translator/encode_commit_history": true

Android: trime#

安卓平台的rime发行版为trime,看起来似乎是第三方基于librime开发的。当前该发行版似乎还在积极改进中,我在这就暂不吐槽我在修改配置过程中遇到的种种bug了,仅贴上官方文档并提醒:时刻记得备份自己的配置文件(们),以及尽可能不要使用其GUI中的键盘设置。不然会变得不幸

我是基于同文官方的trime.yaml修改的配置,主要调整了少量键盘布局、增加了夜间配色、实现了少量自定义按键以及移除了大量(对我而言)没什么用的键盘、配色等,我的方案可以参看我的gist。

关于夜间配色#

官方文档中指出如下:

[3.2.6]dark_scheme:配色方案如有此参数,即视为明亮模式的配色。当系统切换为暗黑模式后,再次弹出键盘时,自动切换配色方案为dark_scheme指定的配色。

不过经过我的实测,这样配置确实可以自动切换到夜间模式,但是在自动切换回日间模式时,输入法的悬浮窗还会保留夜间模式的配色,这点在trime官方群讨论中得到了证实,希望日后可以得到修复(

关于按键自定义#

自定义按键理论上可以做很多有意思,不过另一方面,输入法做得过于喧宾夺主也并不值得推崇。

这里只举一个例子,权当抛砖引玉:

Bili: {label: B站, command: run, option: "bilibili://search/%4$s"}

# ...

- {click: 'r', long_click: 'Bili', swipe_up: 4}

这里我把长按r键设置为了使用bilibli app搜索当前文本框光标前的字符。其中,bilibili://search/的字段可以通过adb shell和logcat | grep结合app内手动操作获取到,理论上其他app也可以通过类似的方法获取,具体还请自行实践。

DLC#

同步方案#

说点题外话,rime的发行版们其实有实现基于uuid的同步方案,不过这种方式其实就是生成了一个sync文件夹,具体的云端同步还需要另外结合网盘使用。加之我在配置trime时留下的不好的回忆,让我对这个方案不甚放心。

最后我还是部分使用了librime的这套方案,在git同步配置文件的基础上使用了syncthing来同步用户词库:

git部分

使用master分支同步共通配置,并主动剔除发行版相关的配置文件,此分支开放在我的github repo供观众老爷们参考

各个发行版在master分支的基础上增加其对应配置文件并同步于其对应分支

master独立更新,各发行版分支基于master来rebase并更新

syncthing部分

使用syncthing同步sync文件夹的txt文件,这里我通过在sync/.stignore文件中添加*.yaml来忽略所有配置文件,结果上来说实现了只同步词库的目的

各平台的sync文件夹的用户词库都通过对应输入法的同步+部署更新用户词库

这对我来说有几个好处:

使用git更利于我进行版本管理(至少配置trime时不再会动不动删档重开)

不需借助syncthing/nextcloud/onedrive等工具就能实现多端同步 现在借助了

但这种方案也有几个已知不足之处,观众老爷们如果有更好的方案欢迎评论区留言:

由于使用了rebase,各发行版分支在push/pull时往往需要使用-f参数来强制推送/拉取,这不够优雅

xxx.userdb目录,即用户输入历史不方便同步,使用git lfs等方案也可能导致repo不必要的臃肿 感谢syncthing

三星手机窃取用户隐私:内置搜狗输入法成为“帮凶” ↩︎

百度输入法已经完全无下限了,远离百度,珍爱一生。 ↩︎

7年后国产输入法依然存在严重问题 上传用户输入内容且可被监听 ↩︎

一系列云端输入法漏洞使网络攻击者得以监看个人用户的输入内容(摘要) ↩︎

相关内容

魔兽44级去哪练级
365上怎么买比分

魔兽44级去哪练级

⌛ 09-12 👁️ 9786
手写板驱动安装实战:电江网-sxb_drv详细指南
365名品汇推荐码多少

手写板驱动安装实战:电江网-sxb_drv详细指南

⌛ 07-26 👁️ 1550
汉家霓裳值不值得培养 汉家霓裳装备
365名品汇推荐码多少

汉家霓裳值不值得培养 汉家霓裳装备

⌛ 08-06 👁️ 2005
3000韩元等于多少人民币?
365名品汇推荐码多少

3000韩元等于多少人民币?

⌛ 07-01 👁️ 4918
开方方法详解:从基础知识到实际应用的全面探讨
365名品汇推荐码多少

开方方法详解:从基础知识到实际应用的全面探讨

⌛ 09-01 👁️ 5538
威泰克斯对讲机报价
365名品汇推荐码多少

威泰克斯对讲机报价

⌛ 07-23 👁️ 7750