一份引擎,六端原生
Rust 核心 + 平台原生外壳:Android IME、fcitx5、Windows TSF / IMM32、macOS / iOS 键盘扩展、鸿蒙 N-API。同一套词库与键码,UI 各写各的。
Android(模拟器)、Windows(真机)与 Linux(容器 / 本机)有运行验证。iOS / macOS / 鸿蒙已有可构建产物,尚未真机验收。
01 / 认识小欧
小欧是 opi 的项目宠物,也是一枚键帽精灵。它长得就是键盘上的一颗键 —— 因为输入法本该如此,不必是别的东西。
身体是键帽,嘴是字母 O(Open),头顶是拼音声调 ˉ,侧壁刻着 opi,底部涟漪只在本机扩散。这些不是装饰,是项目对「输入」这件事的态度。
始于不满,成于热爱。—— opi 项目缘起看小欧的原始矢量稿
按键进入引擎,候选回到宿主,上屏全程只在本机完成。没有云端往返。
02 / 能力
没有弹窗、没有账号、没有「猜你喜欢」。只有一条清晰的输入链路,和足够克制的工具;云同步已裁决不做,未做的边界以 README 为准。
Rust 核心 + 平台原生外壳:Android IME、fcitx5、Windows TSF / IMM32、macOS / iOS 键盘扩展、鸿蒙 N-API。同一套词库与键码,UI 各写各的。
Android(模拟器)、Windows(真机)与 Linux(容器 / 本机)有运行验证。iOS / macOS / 鸿蒙已有可构建产物,尚未真机验收。
输入、候选、用户词都在本机完成。没有登录、云端同步与遥测;联网仅用于拉取 version.json,不携带输入数据。
拼音 / 简繁 / 双拼 / 五笔 / 笔画,26 / 9 / 14 键布局;字母上方符号提示、长按或上滑弹出大小写与符号,标点列可滚动并可自定义。中英两套自定义短语互相独立(Android / 桌面 / macOS 设置):中文只在中文键盘、英文只在英文键盘精确触发;移动端开括号自动补闭括号、光标居中。拼音常驻并自动分词;成语 / 歇后语与三到多字组词可整句识别;繁体支持因端而异。
简体主库与繁体库分轨,康熙字典、现代繁体词与常用语持续并入;词库变更也有门禁与回归测试守着。可选导入 CustomPinyinDictionary / rime-wanxiang 20 万条包。
十二种小欧动画贴纸、689 条 OpenMoji 常用表情、390 条颜文字。自有表情带「小欧·」标签,不跟 emoji 撞名。
Linux / Windows 状态栏只在 OPI 激活时出现;Windows 交互式升级不注销(新开应用生效,已开应用重开);Android / 鸿蒙齿轮直达键盘内设置页。五端皮肤列表统一为 30 款:11 款纯色(默认清爽)只换配色,19 套动态插画各自带配色、选中即插画与键面 / 候选栏 / 状态栏一起换:手机端铺在键后,桌面端角色从状态栏条沿错落探出;各端关于页都能检测并在应用内下载全量 / 热更新包,显示进度与校验结果。
Android / Windows / Linux / macOS / iOS / 鸿蒙的文件放在本站 download/,不跳 GitHub。代码 MIT,简体主库 GPL-3.0。
03 / 功能迭代
不是一条直线:引擎、词库、平台外壳和表情系统互相拉扯着长大。这里是几个值得记住的节点。
新增随包高频词库 2800 条:高频词语 300、高频字 500、高频用语 500、高频组词 500、高频网络词 500、高频方言 500。输入时先查高频词库、再合并其他词库并去重;高频层条目优先于普通内置候选,同名同键只出现一次。移动端与 Apple 端候选改为首屏 2 页、翻页增量加深;桌面端保持整表取回以显示总页数。词库随包种子,Android/Linux/Windows/macOS 首启生效。
桌面符号/表情搜索框改为可聚焦输入框:点搜索框可切中文输入法,点符号后把 X 焦点还给目标程序。自定义短语的新增/编辑改为窗内面板(可正常用输入法),开关明确「打开后优先识别」。Windows 状态栏激活过 OPI 后不再因焦点切换消失;Linux 状态栏按前台 IC 上报 im,终端切回也会显示。语音开始录音时暂停其他音频/视频:Linux 走 MPRIS(只恢复之前正在播放的),Windows 发系统媒体键。
Linux 语音新增麦克风采集看门狗:采集线超过 4 秒没有任何 PCM(PipeWire/Pulse 偶发挂起)就自动重开,3 秒循环继续到用户停止。Windows 安装完成后会用原用户身份优雅关闭并重启仍加载旧 tsf_opi.dll 的可见应用(Explorer 沿用原有看门狗路径),用户不必再在点语音后看到注销提示;拒绝关闭(保存对话框)的程序仍按兜底提示处理。Windows 自有表情改走原生剪贴板:静态图用带 alpha 的 PNG/CF_DIBV5,动图用 GIF + 临时文件(CF_HDROP),微信里优先保持透明底和动图。
Linux 端连续语音:VAD 的短暂误判不再清零 3 秒切段计时,连续说话会持续每 3 秒增量上屏。Windows 端在开始语音前检查目标程序里加载的 TSF DLL 版本:升级后未注销/未重开的目标程序会明确提示「注销或重启 Windows,或完全退出该程序后重开」,不再继续输出“-”。基础/普通/完整三档使用同一份桌面代码,修复一致。
跨设备传输的设备名现在允许短横线与下划线(- - _ _)。接收目录可自定义:桌面与 macOS 可选文件夹或手填绝对路径,Android/iOS/鸿蒙可在默认目录下填写子目录。桌面语音改为优先 TSF 文本直插,并记住点话筒前真正的前台输入框,连续说话按 3 秒分段持续上屏,浮层显示已上屏段数;Windows 不再因合成字符被 TSF 截获而出现“-”。自有表情优先发送透明 PNG 与动态 GIF,有动图时保持动图。
全端跨设备传输新增自定义设备名:只允许中文、英文字母和数字(1–64 字节),保存后立即用于发现广播与配对握手,系统默认名自动清洗;设备列表与配对提示显示新名字。Windows 语音输入修复唤起时插入“-”的问题:SendInput 合成字符以 VK_PACKET 原样放行,不再被 TSF 截获成横线,识别出的中文直接写到光标处,3 秒分段照常逐段上屏。
桌面语音对齐移动端:连续说话每 3 秒强制切段,识别完一段立即写到当前光标处;Windows 用 Unicode 直注,管理员窗口自动回退 TSF,停止时补识别尾段。标点与符号原样保留,不额外添加。录音浮层实时显示已上屏分段与错误。桌面传输记录的发送/接收卡片新增字节进度条;修复 TSF 直插文本要等按键或停止才落地的问题。
跨设备传输修复 Windows 发现线程被 WSAECONNRESET(10054) 终止;已信任设备可双向连接,单边信任/重装后自动重配。多设备时文本与剪贴板按选中设备定向发送,并可只接收选中设备。桌面端新增文件/文件夹/照片三块虚线拖拽区,修复选择器打开期间目标被刷新改掉导致发错设备;隐私政策改为应用内正文滚动。基础/普通/完整三档都带拼音主词库;站点语音引擎坏包增加 release digest 兜底;9 键候选去重零克隆、读数列改为惰性组合。
跨设备传输的接收文件统一落到下载目录的 opi 子目录:Android 公共 Download/opi(旧版应用私有目录自动迁移),桌面 Downloads/opi、macOS/iOS/鸿蒙保持各自 opi 目录。配对提示直接显示握手交换的设备名;Windows 修复手动/自动配对 WSAEWOULDBLOCK(10035);发现组播改用独立 224.0.0.168,不再占用 LocalSend 的 224.0.0.167。桌面新增同皮肤的文件/文件夹/照片选择器与拖拽发送;移动端设置 → 传输增加发送、接收与传输记录。
Linux 状态栏恢复「切到其他输入法隐藏、切回 opi 显示」;fcitx5 切换瞬间会短暂卡住 D-Bus,轮询改为失败 200ms 重试、隐藏时 500ms 一拍且超时缩到 800ms,切回不再藏 4 秒以上。桌面语音在加载前补写缺失的 manifest.json(Whisper 文件齐全却一直报未下载的根因);完整包首次用语音时把引擎库持久化到用户目录,升级普通包后语音仍可用,浮层也不再误报「模型未下载」。跨设备传输修复排队命令首条被丢弃(打开开关后宿主起不来);移动端关于页移除界面语言选择、开源致谢移到最后。
fcitx5 插件的用户词自动落盘移出事件循环:fsync 交给后台线程,/home 在慢盘上不再冻住语言栏与输入法。桌面独有配置(状态栏/剪贴板/语音/界面语言)改存独立的 ~/.config/opi/settings.ini,fcitx5 autosave 不再把未知键抹掉;界面语言切换也会持久化。
基础包只保留 app 代码:拼音主词库与全部扩展词库在「设置 → 词库」下载(词库包约 24 MB),语音引擎与模型在「设置 → 语音」下载;语音默认开启并预热。跨设备发现改发链路本地组播 224.0.0.167 并兼容旧组,同版本设备自动配对、多台同时在线;Android 前台服务补齐资格权限。移动端设置改为「输入/词库/语音/传输/关于」分页;关于页开源致谢折叠,站点新增致谢页。桌面语音采集兼容 44.1/48 kHz 与立体声并重采样,录音浮层跟随鼠标所在屏幕且不抢焦点。
跨设备剪贴板升级为传输:附近设备发现、文件/文件夹/媒体/文本/剪贴板,已配对设备默认自动同步剪贴板;Android/桌面新增传输面板,iOS/macOS/鸿蒙接入。iOS 改用系统本地语音,macOS/鸿蒙接入 opi-asr;键盘唤起后台预热。关于页补齐完整/普通/基础包下载与开源致谢,应用内下载默认落到 Downloads。
Android 刷新改单次 JNI 快照,9/14/双拼读数不再搬 512 条候选;Compose 收敛根重组、隐藏时停动画。TSF 候选窗改有界队列 + 单写线程;IMM32 按 HIMC 隔离会话;引擎宽前缀快路径与读数惰性化(本机 release:xin 6.0→2.0ms、9 键 64 3.4→1.5ms)。
Windows 新增 IMM32 兼容输入法与独立键盘布局,覆盖只走 IMM32 的 PowerShell/Chrome 路径;Shift 轻按在跳过 OnTestKey 的宿主里也能切换。剪贴板按真实网卡地址发现并排除 WSL/Docker/VPN,宽子网也探测 /24;完整包语音模型清单修复,不再卡在「正在加载模型」。全端热路径优化:候选排序/去重零克隆、有限前缀快排、Android 首帧只装当前方案码表,桌面/iOS/鸿蒙缓存与懒加载。
跨设备剪贴板按真实子网前缀广播并支持按 IP 手动探测;Android/桌面设置结构统一,新增手动连接与发现计数。桌面语音加载不再重复全量哈希模型,浮层可取消/关闭;界面与文档不再显示端口号。普通包继续作为默认推荐。
语音引擎只随完整包;普通包/基础包在「设置 → 语音」按需下载(约 8 MB),再下载模型。站点下载页显示各包体积,网盘镜像列出每个平台/档位的包名、说明与大小;新增词库许可与视觉资产许可页面。跨设备剪贴板改用真实网卡地址定向广播与 /24 探测回复,Android 键盘设置也加开关;全端设置/关于页增加中英文切换;单位/度量符号按拼音名进入候选(du→°、ke→g、mi→m)。
语音模型改为官方源优先、本站兜底,下载完成自动启用;中文/繁体 SenseVoice,英文 Pro 才用 Whisper;录音时暂停其他音频。游戏模式改为全宽更矮,悬浮叠加不再挤压按键;状态栏话筒移到「简」前,词库列表增加下载。跨设备剪贴板增加子网定向广播;Windows 同时注册 zh-CN/en-US TSF profile,修复 Chrome 地址栏不激活。
安装包分为完整包(内置 SenseVoice/Whisper 模型与全部词库)、普通包(语音引擎+全部词库,模型设置内下载)、基础包(仅拼音主词库,扩展词库与模型设置内下载);设置新增扩展词库下载。动态皮肤改为整页插画连续透出:按键、候选栏、工具条、面板只压半透明主题色,不再只换按键背后的背景。站点下载页按档位列出并显示体积。
Android 空格键换话筒图标(短按仍是空格,长按锁定录音),桌面状态栏符号键后新增话筒按钮;音频只在本机识别,不落盘、不上传。中文/自动走 SenseVoice,英文走高精度 Whisper;模型首次使用下载并逐文件 SHA-256 校验,不进安装包。iOS 键盘无麦克风,继续用系统听写;鸿蒙未接语音。动态皮肤改为整页背景替换,按键恢复主题纯色。
补齐动态皮肤全页面、候选词反查符号、跨设备剪贴板与文本准确率的文档和站点说明,更新站点预览图;功能与 1.29.0 相同。
动态插画不再只覆盖键盘:设置、皮肤/模式/符号/表情/关于/平铺候选等页面都铺同一主题插画并保持文字可读;纠错/简拼/模糊给出的候选词会追加对应符号或颜文字。新增跨设备剪贴板:默认关闭,手动 6 位 SAS 配对后在同一局域网用 Noise 加密同步纯文本(≤256 KiB),不经云端,Android/Windows/Linux 自动监听,macOS 轮询,iOS/鸿蒙键盘可见时降级,可一键停止。
动态皮肤是整页背景替换:插画铺在键盘/页面后,按键保持主题默认纯色,不在按键上贴插画;桌面 / Windows 候选窗整幅铺主题插画并压 52% 底色。纯色皮肤保持原样。
动态皮肤不再只显示底色和条外溢出:Android 键帽 68% 不透明、键区罩层 16%;iOS 键帽 68%、键区底板 20%;鸿蒙 keyBg 72%、罩层 18%;桌面状态栏在条内铺插画,条底板与按键半透明。纯色皮肤保持原样,键面文字加阴影保对比度。
Windows Server Core 没有 TSF,MSI 的 OpRegisterTsf 按设计回滚(1603)。容器冒烟现在只放行这一已知回滚(动作 Return value 3),其他失败仍红,并恢复为真门禁。功能与 1.28.0 相同,仅版本位、CI 与文档同步。
19 套插画全部重画:清晰描边、分层景物、花藤/花枝补全,花茎入土、道具与角色接地;新增 shared/scene/art 高清共享资产。Android/桌面实时绘制,iOS/macOS/鸿蒙显示同一份资产;五端皮肤列表统一为 11 款纯色 + 19 套动态,默认清爽。另加符号名称输入(中文模式 zuokuohao→(、jiantou→→、kaixin→颜文字;英文模式 leftbracket→[、arrow→→)、关于页只显示链接文字,以及下载前复用本地已校验包。
动态主题就是皮肤:去掉「配色皮肤 / 动态背景」两个独立选择器,并把原来的 11 款纯色并回同一张列表(默认清爽)。纯色只换配色,19 套动态主题自带配色、插画与配色一起换;桌面状态栏 logo 点击按纯色 → 动态顺序循环,旧配置恢复时按主题推导配色。
新增 19 套动态插画皮肤,每套自带配色,选中即插画与键面 / 候选栏 / 状态栏配色一起换;手机端铺在键后,桌面状态栏角色从条沿错落溢出(透明窗 + X11 输入透传),键帽加描边/浅底提升可读性。桌面与 Android 关于页支持全量 / 热更新包的后台下载、进度、取消与 SHA-256/大小校验,不再跳浏览器;Android 由系统 DownloadManager 续传,Linux 热更新 zip 已发布。
Android / iOS / 桌面表情与颜文字分类改为按组切片,修掉「点后一个显示前一个」;空分类提示与再点回组顶。Android 智能联想开关改完立即生效并清掉隐藏联想。Android 表情取表/字形探测合并,iOS 缓存表情浏览数据,减少重复开销。
六端一致性与性能更新:iOS / 鸿蒙用户词落盘,简繁 / 语言切换保留未确认缓冲,macOS 括号配对,鸿蒙补 pendingText;Android 启动装载与学习写盘下后台、候选读数按需;TSF 点选 drain、模式切换保文本、去激活与布局热键;Linux 候选翻页;词库按固定容量重建;新增仓颉数据阶段(79,261 条,暂未接 UI);版本与 CI 门禁加固。
六端设置新增「智能联想」开关,默认关闭;fcitx5 联想候选带数字、可数字选词并支持 PageUp/PageDown 与 -/= 翻页;TSF 关闭后不再显示联想候选;中英隐私政策页上线,六端关于页加入链接。
提交后按前缀与语义小表联想常用续接词句,六端接入;点选可继续接龙(TSF 于下一次按键落字);任意按键先收起,光标移动即收起。站点补 404 页。
拼音读数不再出现按键数字;14 键接多字组合与整句;补读音与组合排序对齐 26 键;iOS 顶部宠物条与系统灰弧适配。
README 与六端安装文档校正 Windows 真机验收、移动候选 512 与用户词落盘边界;架构 / 功能 / 生命周期图同步 1.26.0 功能;官网版本、下载与 SEO 元数据更新。运行时与 v1.26.0 相同。
Rust 核心、拼音解析与词库管线成形;Android 原生 IME 跑通第一条输入链路。
fcitx5 插件、Compose 候选窗与设置页、Windows TSF 骨架;Linux 成为第一个真实验证的桌面端。
十二种形态、OpenMoji、颜文字、自有贴纸与英文普通 / 专业模式;「小欧」成为输入法的名字。
iOS 宿主 App 与 unsigned IPA、鸿蒙 HAP、Windows 注册链路修复、状态栏统一缩放;官网与 v1.16.0。
iOS 9 键读数列 / 平铺候选 / 输入法内切换;Windows TSF 升级替换与无重启卸载;Apple 改为单一自包含包。
Windows 交互式升级重启原用户桌面、功能键与空缓冲特殊键放行、切换输入法释放状态栏;Android / 鸿蒙工具条齿轮改为键盘内设置页。
括号自动配对(Android/iOS/鸿蒙):开括号自动补闭括号、光标居中,闭符号跳过,空配对一次退格;智能学习:空格接受 +1 / 显式选词 +2、同输入改选撤销上一条、英文候选读取学习频次,fcitx5 / macOS 用户词防抖落盘;移动端候选窗 64→512,9 键后排「壹」可翻到;新增 CustomPinyinDictionary / rime-wanxiang 可选词库转换与许可文档。
26 键单键有限窗口在全量池上按档位选择、只物化首位段(桌面 release 单键 3.5–6ms);9 键单键不再做无意义回退扫描;有限窗口与全量列表逐条同前缀,修复「看到百度、上屏不饿」。
9 键分词查询从全表扫描改为区间枚举(882ms → 1.1ms);鸿蒙删重复 pageCount;iOS 词库进程级复用;Android 可选词典一次校验、⌫ 选区缓存;Linux Shift 不重排。
自定义短语缺省关闭、开启即热加载;移动端弹层横向一行,26/14 键「英/中」一次直达;9 键标点列收窄、右列 0、空格移到底行正中;Windows 状态栏小圆角;iOS 宠物条铺满并适配顶部圆角。
中英两套完全独立的自定义短语落地 Android / 桌面 / macOS 设置;移动端 9/14/26 键与五笔键盘按参考图改版:序号角标、符号提示、长按/上滑弹层、可滚标点列与自定义符号。9 键无匹配时拼音行不再显示按键数字(468 修复,iOS/鸿蒙同款)。
按真机 .ips 定位并修复 9 键点繁/123/英文时的 Auto Layout 崩溃(重建键面前显式停用读数浮层旧约束);键盘顶部新增随机多形态宠物条。移动端英文键盘空格变小、`,` `.` 前移、⌫/↵ 互换,`!?#` 直达英文符号类目。
9 键数字空间组合识别补齐三字/四字/多字词(厌蠢症、样样通);拼音行不再用「·」补待编键,未覆盖键按键面首字母补全,超出屏幕横向滑动。iOS 数字层数字直提、码表懒加载、切英文只重建一次键面;Android 键盘面板加入更新检测。
iOS 9 键底行繁/123/英文保留在当前输入法;🌐 短按键盘内循环、长按才切系统键盘;重建键面之前先释放旧键行并加日志。Windows 覆盖安装白屏修复沿用 1.24.2,并已真机验证。
04 / 十二种形态
它不只住在设置页。候选栏、空态、启动图标、状态栏 —— 小欧会在你打字的每个小瞬间出现。点任意一张,看看它的心情。
十二种形态均为 opi 自有资产,不是内置 emoji。输入法里以动画 GIF / PNG 贴纸插入,标签带「小欧·」前缀,和 emoji 不重名。
05 / 版本日志
版本号采用 v主.次.修订 格式,当前版本 v1.31.18。发布说明写在 tag 注释与 GitHub Release 里;最新版本在右侧顶部,历史版本收进了可滚动窗口。
默认显示最新版本 · 向下滚动查看更早版本
06 / 下载
Windows 支持 10 1607+ / 11 x64;Apple 与鸿蒙目前是 unsigned 产物,需要你自己的签名。
目前 Android(模拟器)、Windows 10 x64(真机,Win11 待验收)与 Linux(容器 / 本机)有运行验证。iOS / macOS / 鸿蒙已有可构建产物,但均未真机验收,签名也未验证。
Android / 桌面 / macOS 设置页可导入,不随包捆绑:CustomPinyinDictionary 20 万条(约 2.9 MB) · rime-wanxiang 20 万条(约 4.9 MB);许可、转换与导入限制。
文件直接放在本站的 download/ 目录,不跳转 GitHub。
装完必做:Linux 把 OPI 加进 fcitx5 输入法组;Windows 在「中文(简体)」键盘列表添加「小欧输入法」(交互式升级按需刷新桌面、无需注销;已打开的应用请关闭重开);iOS 在设置 → 通用 → 键盘中添加并允许;macOS 在输入源中添加。
下载目录按版本分目录(当前 v1.31.6/);旧版目录保留,页面版本 v1.31.6。iOS / macOS / HarmonyOS 目前只发布普通包:iOS 使用系统本地语音,macOS / 鸿蒙的语音模型按需下载;扩展词库按需下载尚未在这三端实现。