Commit Graph
104 Commits
Author SHA1 Message Date
Haoyu Xi 3e7e72eb83 feat(core): 英文模式也使用自定义短语 (#794)
dont → don't 这类短语以前只在中文模式出;英文模式也插进来,只出内容不含汉字的,中文短语(含右键置顶加的)留在中文模式,免得英文模式按空格上屏中文。
2026-10-26 10:35:23 +08:00
Haoyu Xi b28260c33e feat(core): 双拼整串配不出音节时按每键一个声母的简拼读 (#792)
双拼 im、zm 这类简拼以前整串报不能切分、什么都不出;整串一个音节都配不出时按每键一个声母再读一次,能正常解出的输入不走这条。

Closes #765
2026-10-26 09:51:54 +08:00
xiaomao49 243e41c3d5 feat(linux): 中英切换时弹「中 / 英」提示 (#751)
Linux 切中英没有任何视觉反馈;KeyResult 带上切换后的模式,Fcitx5 插件用框架的输入法信息气泡提示,跟随「切换输入法时显示输入法信息」设置。
2026-10-26 09:32:20 +08:00
Haoyu Xi efa83b3e44 feat(core): sj 的时间候选增加 yyyyMMddHHmmss 时间戳 (#785)
取单号、追溯串时直接要一个时间戳。

Closes #778
2026-10-26 09:32:12 +08:00
Haoyu Xi 281e0d367f fix(core): 双拼末尾落单键拼出整词时不再让英文词排第一 (#786)
双拼末尾落单的一键是还没敲完,连同前面的音节拼出整词时按中文读法,英文退到后面、空格不再把整串当英文上屏。

Closes #753
2026-10-26 09:29:38 +08:00
Haoyu Xi 9c0d4474f2 feat(core): 中文模式下英文候选可限数量与最高位次 (#772)
中文模式下英文候选可以限两件事:[general] english_max_in_chinese 限数量(1–4,缺省 4 即 1 条精确词 + 3 条补全),english_min_position 限有中文候选时英文最高排第几(1–9,缺省 1 不限制;没有中文候选时英文照旧第一)。缺省值下行为不变;完全关闭仍用「打拼音时也给英文词」。三个平台的 Server 与共用设置页都接上了,Linux 改配置后也会重新读 english_in_chinese。

Closes #768
2026-10-23 15:46:26 +08:00
Haoyu Xi 66d62093ef fix(core): 关闭「打拼音时也给英文词」后不再把英文词并入整句 (#770)
关掉「打拼音时也给英文词」后,整句分词仍把内置英文词当句尾(nanine 出「那nine」)。现在开关关着时英文尾段整条路都停:nanine 回到「那你呢」,单独打 nine 也回到拼音读法。开关缺省开着,缺省行为不变。

Closes #766
2026-10-23 15:35:37 +08:00
yenharvey 11bc654811 feat: 知意与含章·知微做成实验功能,设置里下载启用
合入本地 experiment/zhiyi-engine:Core 本地模型可选通变 / 知微 / 知意(知意分省电、均衡、准确三档),设置「实验功能」页下载、启用、删除,进度条与逐块校验;mac 走 Metal,Windows 走 ONNX Runtime 只用 CPU;读不到光标前文时按应用、按输入框取最近打的字。
冲突:设置的短语页、快捷键页说明按 main 的新功能留;用户文档 local-model.md、preferences.md 已在 main 拆分,实验功能的说明搬进 input/sentence.md、getting-started/settings.md、advanced/config-file.md。
2026-10-22 17:20:40 +08:00
yenharvey 17f819b753 feat: 打「用户名@」时候选列出常见邮箱的完整地址
Core 的 email_completions 原来只给 Android 用,桌面的英文直输段接上,地址按快捷候选上屏、不记学习。
直输段里按空格选中地址时不再把空格交给应用。
网址本来就能在英文直输段里打(www.example.com),不另做模式。

Closes #508
2026-10-22 15:04:39 +08:00
yenharvey eb5158aa4a feat(windows): 知意只用 CPU,不接 DirectML
集显上 DirectML 因每次序列长度不同,均衡档一次 200 ms,CPU 两线程 28 ms;
安装包改带 CPU 版 ONNX Runtime,少一个 18 MB 的闭源 DirectML.dll。
2026-10-21 20:17:27 +08:00
yenharvey a20a38acaf docs(user): 用户文档按用户要做的事重新分组
功能越加越多,原来按早期设置页搭的结构塞不下:几个大页(按键、拼音方案、主题)越写越长,同一功能散在几页。
现在分为开始使用、打字、学语言、个性化、AI 服务、各平台、隐私与帮助、进阶八组,一个功能只在一页讲全,别处一句话加链接。
配置键名、文件路径、文件格式只放进阶组,其他页只写「设置 → 某页 → 某项」,面向普通用户不出现实现词。
设置程序的 ⓘ 链接表、各 README、issue 模板与代码注释里指向旧页面的链接一并改到新地址。
2026-10-21 20:06:25 +08:00
yenharvey 99f64f3bc6 build(installer): 取 ONNX Runtime 时用 TLS 1.2 2026-10-21 19:59:06 +08:00
yenharvey b8881c7456 feat(windows): 知意走 ONNX Runtime,有显卡用 DirectML,没有退 CPU 省电档
qingjian-neural 把知意的前向抽成 candle / ONNX 两个实现,分词与序列拼法共用;
Windows Server 按 [model] name 加载,设置下载 zhiyi-onnx,安装包带上 ONNX Runtime 1.24.4 与 DirectML。
2026-10-21 19:47:52 +08:00
yenharvey 3be348d4e4 feat(settings): 「实验功能」页下载、启用、删除知意与含章·知微
两边同时取清单,先回来的先下,不通换另一边;逐块与整包核对 SHA-256,解到临时目录再换进模型目录。
mac 壳按 [model] name 加载,换档当场生效。Windows、Linux 登记待实现。
2026-10-21 19:16:08 +08:00
yenharvey 04068a5c0f feat(core): 读不到光标前文时按应用、按输入框取最近打的字当前文
- 输入记录按应用分开,每个 256 字、最多 16 个应用;换应用不串
- [model] context_memory_seconds(缺省 60,0 不过期)没打字就不算前文,太旧的前文没参考意义
- mac 进输入框时从头记;Linux 本来每个输入上下文一份;Windows 的 DLL 还不报换输入框,等知意 Windows 版一起做
2026-10-21 16:35:47 +08:00
yenharvey 4a5d60952b build: 安装包与数据包不再带含章·知微
三个桌面平台都是有含章·通变就不加载知微,而通变一直随包,知微从来用不上,白占 53MB。
用户自己放进数据目录 models/hanzhang-zhiwei/ 的仍然认。data-fetch 兼容还带着知微的 data-v7。
2026-10-21 15:06:25 +08:00
yenharvey c3a1d56d41 feat(settings): 拼音和形码不能都关,下拉菜单支持变灰的项
两个都关时引擎偷偷按全拼,界面却写着关,像是坏了。现在一边关着时另一边的「关」变灰点不了;手改配置都关时仍按全拼兜底。
bamboo-slip 的 Menu 加 disabled,变灰的项不响应悬停与点击。补上双拼与形码混输的测试。
2026-10-21 13:12:11 +08:00
yenharvey bd4355d86a feat: 导入五笔词库,跟形码方案的码表合并
「导入词库」看第二列认格式:多字词的编码连着写就当形码词库,存进用户目录 code_dicts/,文件头记着导入时选的形码方案,载入方案时并进它的码表,不用整份换码表。
拼音导入遇到这种文件直接拒绝(#536 是五笔码表被当拼音词库导入,显示成功却打不出);认不出格式时提示每列该写什么。
形码词库和拼音词库共用开关与移除;mac / Windows 看到 code_dicts/ 变了就重装方案。Linux 还没有形码,安卓提示暂不支持。

Refs #536
2026-10-21 13:12:10 +08:00
jubeater 3b5828462e feat(linux): 中英切换键与默认英文模式可配置 (#730)
Linux Server 读 [shortcut] switch_mode、[general] default_english 与 english_mode,设置程序在 Linux 上显示切换键与默认英文模式;Fcitx5 / Fcitx4 把 Ctrl 报成 VK 0x11 以认单击 Ctrl。

Closes #703
2026-10-21 11:23:47 +08:00
yenharvey b2f0052a4c fix(windows): 切到英语键盘布局时收起悬浮状态条
原来监听的 ITfActiveLanguageProfileNotifySink 只报文字服务,跨语言切到纯键盘布局(ENG)时不来,状态条一直留着。
改用 ITfInputProcessorProfileActivationSink,别的输入法或键盘布局被激活都发 ImeSwitched。

Closes #722
2026-10-21 10:05:10 +08:00
Haoyu Xi 3f769c6a82 feat(core): v 模式支持输入日期(v1998-3-8 → 一九九八年三月八日) (#720)
表达式模式里四位年份加月日先认成日期,年份不是四位或月日不合法仍按算式算。

Closes #692
2026-10-21 09:26:09 +08:00
yenharvey 03c4074f59 docs: Android 用户文档、实现要点与移动端统一到 Rust 的计划
- 用户文档:Android 入门页,按键、快捷输入、统计与译词页补手机上的差异
- 设计与笔记:九宫格、语音与滑行、渲染与主题的手机部分,Android 实现要点与 crate 笔记
- 路线图与 contributing:记下 Android 进度,移动端键盘与面板将来统一到 Rust,共享规则不在壳里另写
2026-10-20 20:35:18 +08:00
yenharvey d2e70ea75c feat: 悬浮状态条大小不再跟候选字号,另设大小滑块
候选字号调大后状态条跟着放大,比候选窗口还显眼(用户群反馈)。
状态条改按主题原样画,大小由 [status_bar] size(60%–150%,缺省 100%)单独定,设置的中英文页加滑块。
百分比滑块挪到共用控件,键位提示与状态条共用。
2026-10-20 17:34:14 +08:00
yenharvey d7fd275ecf feat(windows): 合并中西文自动空格 2026-10-20 16:03:48 +08:00
yenharvey 2a3746654d feat(windows): 双拼键位提示与五笔字根图
照 macOS 的规则:Server 按 [general] key_hint 决定每帧带不带键盘、停顿到点由 tick 弹出;UI 线程上另开点击穿透的分层窗口贴在候选窗旁,用键盘自己的渲染器免得打断候选窗动画。
2026-10-20 15:30:19 +08:00
yenharvey 5ffa9abbb5 feat(windows): 中文与英文、数字之间自动加空格
Core 早有自动空格,Windows 只差读开关和直通字符这一段:
- 不在组句时交给应用的字母、数字与上文是中西文交界时,改由我们连空格一起插入
- 不在组句时的退格告诉 Core,删掉刚上屏的字后不再按它补空格(与 macOS 一致)
2026-10-20 15:21:58 +08:00
yenharvey d54dbf57e4 feat(platform): 随包笔画表按每字首笔给表外的词算码
- 笔画表只收了基础词库的词,自造词、导入词库与学到的词在辅码态会被藏起来;装随包 stroke.qj 时挂上与 dict-convert 打包同一条词码规则(每字首笔,四字以上取前三字与末字),表外的词现算
- 首右不做:sysrf.cn 的私有方案,字根图无授权、自己生成也对不上官方码;设计文档记下理由
- 待办记下「整句 + 辅码」,先不做
2026-10-20 14:39:25 +08:00
yenharvey d06b75ff30 feat: 辅码方案化(词码规则、同一时间只用一套)并接上 macOS
- schemes/<id>/scheme.toml 写 type = "aux" 即辅码方案,与形码、双拼共用目录、id 规则与元信息;codes/ 导入的 .qj 照旧可用
- [words] 词码规则沿用 Rime encoder 写法:码表只收单字时按词长从各字的码拼出词码,表里写了的词仍用自己的码;AuxCodeLookup 因此返回 Cow
- 同一时间只用一套([aux_code] scheme,设置里是下拉框):几套叠着筛,同一个字母在不同方案里意思不同,筛不干净;没选过或选的没了用第一套没被老 disabled 关掉的
- 两个壳按 AuxCodeSources 装码表,轮询 codes/ 与 schemes/ 的文件快照,导入或改方案不用等配置变
- macOS 接上辅码:按键分流与 Windows 一致、Esc 只清码段、候选上显示码,包里带上笔画表与 CNS 署名
- CLI 的 --aux-table 也收方案目录
2026-10-20 14:17:34 +08:00
yenharvey 39161a2166 feat: 合并键位提示(双拼键位与五笔字根图)
- KeyHint 改吃 Layout,用户双拼方案也画自己的键位
- 字根图只在挂着 86 五笔时画,别的形码方案没有字根图、设置里不出键位提示
- 字根表与字形表随 86 五笔挪到 assets/schemes/wubi86/
2026-10-20 11:46:00 +08:00
yenharvey 3ba586d867 feat: 自定义双拼方案,形码方案 scheme.toml 必填并可在设置里改规则
- Core 的双拼解码挪到 Layout:内置九套仍是编译期常量表,用户方案拼成同一个结构,走同一套解码;Layout::check 报写错的键与打不出来的音节(按全部两键组合实际解出哪些音节算)
- 用户双拼方案放在 schemes/<id>/scheme.toml,写 type = "shuangpin",可拿内置方案当底子按键改;配置里认不出的 scheme 写法能当 id 就是 Scheme::Custom,找不到按全拼
- SchemeSlot 取代 CodeSchemeSlot,两条轴一起装,直接收 &Config;CLI 的 --shuangpin 可给方案目录,回放按 id 认出用户双拼
- 形码方案的 scheme.toml 改为必填,形码与双拼共用 author / version / description / license 元信息
- 设置里单用形码时出现「满码唯一自动上屏」「顶字」开关,存进 [code.<id>]、盖过 scheme.toml(随包方案只读,换码表也不丢),只改规则不重读码表
- Linux 还没接方案目录,设置里不列自定义方案(support 表登记待实现)
2026-10-20 11:34:14 +08:00
yenharvey 84196a8e49 feat: 自定义形码方案,单用形码时顶字、满码唯一自动上屏、标点上屏与空码清除
形码侧从只有 86 五笔扩成方案:Core 的 CodeScheme 是码表加按键规则,平台层 code_schemes 负责找方案。
随包五笔挪成 assets/schemes/wubi86/(scheme.toml + table.tsv),与用户数据目录 schemes/<id>/ 下的方案同一种格式、同一套找法,代码里不再有内置特例。
配置收成 [general] code = "<id>"(off 为关),旧的 wubi = "wubi86" 读取时仍认。
按键规则只在单用形码时生效,混输下满码之后的字母可能是在接着打拼音。
满码长度取码表里最常见的编码长度:极点码表里有条写错的 5 码(TF卡 ttfhh),取最长会让顶字与满码上屏全部失效。
CodeSchemeSlot 在方案与码表文件都没变时不重读码表,配置热加载多半改的是别的设置。
CLI 的 --wubi 换成 --code(旧写法仍可用),收码表或方案目录,回放认任意形码方案键。
设置程序的「五笔」开关换成「形码」下拉;切回窗口与进「输入」页时重扫 schemes/。
bamboo-slip 的下拉框宽度改为最小宽度并可设最大宽度,值过长时截短补「…」,不再把箭头挤出框外。
2026-10-20 10:22:58 +08:00
yenharvey f41fd7d5fe feat(settings): 五笔下也能开键位提示
输入页开着五笔时同样出现键位提示、大小与透明度;用户文档加「字根图」一节,设置说明表同步。
2026-10-19 19:07:10 +08:00
yenharvey a98cec82a2 feat(settings): 双拼键位提示的开关、大小与透明度
输入页选了双拼才出现:键位提示下拉框,大小(60%–150%)与透明度(30%–100%)两个滑块,每格 5%。
平台表登记 macOS 支持、Windows 与 Linux 待实现,todo 同步列进设置项的平台缺口。
2026-10-19 18:16:05 +08:00
Haoyu Xi 95018ff599 feat(core): 双拼新增紫光方案 (#660) 2026-10-16 09:19:05 +08:00
yenharvey 3c9ebd8091 feat(settings): 新设置补上 main 这段时间加的选项
- 候选:译文加德语;繁体开关换成输出字形四档;emoji、颜文字、符号各一个个数下拉
- 中英文:Windows 加系统 Ctrl + Space、默认英文模式、按应用记住中英模式;macOS 加中西文自动空格
- 快捷键:Windows 加额外翻页键、高亮移动键、Ctrl + . 切换全半角标点,恢复默认一并复位
- 云服务:整句候选翻译;Windows 上测试连接记进 Token 用量
- 统计:Windows 显示云服务请求次数与 Token 用量(目前只有 Windows 的输入法记)
- 用户文档按新的页名与新选项更新
2026-10-15 16:32:42 +08:00
yenharvey f8b1167434 chore: 合并 main 到 refactor/render-engine
- 菜单编号:macOS 设置 5、符号面板 6;Windows 符号面板 7、旧版设置 8
- Linux 打包带上设置程序与 hicolor 八档图标
- 用户文档里的设置指路改成新设置的页名,内容取 main 的
2026-10-15 15:20:10 +08:00
yenharvey a59aaa407b docs(core): 补 v 代 ü 带韵母的例子,ü 键测试加上拼音加加 2026-10-15 13:06:14 +08:00
Haoyu Xi 9a781de664 feat(core): 双拼新增拼音加加方案 (#624)
双拼第八套方案,配置写 jiajia;翘舌 zh/ch/sh 在 v/u/i,零声母双写为主、兼容 o 前缀。

Closes #484
2026-10-15 13:05:14 +08:00
yenharvey 533e09b8ab fix(core): 繁体台湾档只换字形,配置改用 traditional_variant
台湾档从 s2twp 改回 s2tw,与 0.2.1 的 traditional = true 输出相同;三档都只换字形不换用语,输入法不替用户改词。
新写法换成 [general] traditional_variant(字符串):旧版本只认布尔 traditional,复用同一个键时退回旧版本整个配置解析失败。
旧键只在没写新键时读,true 按台湾档;不认识的写法只让这一项回简体。
2026-10-15 11:57:47 +08:00
jacklaoz 8d6eccebe3 feat(core): 繁体输出分三档(台湾 / 香港 / 通用字形) (#625)
台湾与香港的字形取舍不同,一个布尔开关表达不了;转换只在 Core 出口做,词库与学习数据仍是简体。
2026-10-15 11:53:01 +08:00
yenharvey 49a5cd8523 feat(windows): 符号面板,按 ↑ 或悬浮条「符」、任务栏右键菜单打开
- 这一版原生画:单独的分层窗口,Direct2D 绑在合成器的 DIB 上,GDI 画不出彩色 emoji;下一版换 qingjian-render
- 按键与鼠标同 macOS;Server 侧状态在 dispatch/panel,格子复用 Core 的 Grid
- 没在组句时打开:Frame::symbol_panel 让空缓冲不算空帧,IndicatorState::symbol_panel 随 ModeSync 让 DLL 进组句态吃键
- 每行几格挪进 Core(PanelSection::columns),mac 与 Windows 共用
- 老 DLL(协议 < 9)不认识颜文字 / 符号候选,发给它时降级成 Emoji,免得整条帧解析失败
2026-10-13 19:18:12 +08:00
yenharvey e6b910314b feat: 符号面板(macOS),按 ↑ 打开,分搜索 / 符号 / 表情三组
- 组句中高亮还在第一个、没动过时按 ↑ 打开(长按连发不算);输入法菜单也加了「符号面板…」,没在打字时也能开
- 搜索组拿当前候选词查 CLDR 中文关键词、emoji 表与内置符号 / 颜文字表(ku → 😭 (T_T));符号组按维护者整理的符号库分 22 类(含带调拼音、注音、平假名、片假名);表情组是常用、颜文字与 Unicode 官方分组的 emoji(Emoji 15.1 以内,免得旧系统显示成方框)
- 数据由 tools/corpus/symbol_panel.py 生成、编进 Core;面板状态与搜索在 Core(SymbolPanel),格子移动复用 Grid,加了按行滚视口的 Grid::scroll
- macOS 面板一律系统绘制(青简渲染器还没有面板):尺寸固定、换组换类不跳;方向键 / Tab / [ ] / 空格回车 / 数字键,鼠标双击上屏、滚轮逐行滚、点标签切换、✕ 关闭
- 补希腊字母的常用中文译名(艾塔、塞塔、奥密克戎、卡伊……),伽马、欧米伽改读 ga
- Windows 面板与悬浮条、托盘菜单入口记进待办
2026-10-13 17:11:43 +08:00
yenharvey 0e7e2c449a feat(core): 候选后面配颜文字与符号,补口语 emoji 叫法
- 颜文字(哭 → (T_T))、符号(约等于 → ≈、alpha → α、尖括号 → 〈〉)跟在对应词后面,与 emoji 各有名额:[general] kaomoji / symbols,缺省各 1,0–3;macOS 与 Windows 设置的「通用」页各加一项
- CLDR 表里的普通符号(≈ ¥ «)按 Unicode Emoji 属性筛出 emoji 名额,改由符号表出;符号表的中文词只收两个字以上的,单字一打就跟符号太吵
- 补 CLDR 没有的口语叫法(笑死 🤣、无语 🙃、星星眼 🤩)
- 三张表与这些词的读音编进 Core(crates/qingjian-core/data/),不随包另带文件;词库没有的词(尖括号、阿尔法)补进查词,否则整句拼成「见括号」配不上符号
2026-10-13 16:35:56 +08:00
myzz c4884e44a0 feat(core): 中文与英文、数字之间自动补空格 (#372) 2026-10-13 14:50:43 +08:00
Harly 279287dce8 feat: emoji 候选数改成 0–3 档可调 (#331) 2026-10-13 13:36:40 +08:00
f 267f8237cb feat(linux): Server 配置热加载 (#394)
改完 config.toml 一秒内生效,不用重启服务;[general] preedit 与 input_log 仍要重启。
2026-10-12 20:49:41 +08:00
Harly 7c0dc214f2 fix(core): 双拼解码保留模糊音可识别的声韵组合 (#330)
双拼下开了模糊音时,声韵拼不成合法音节但模糊音能补成合法音节的组合(自然码 sd、小鹤 sl → suang → shuang)保留下来参与查询,上屏按实际按键数消耗。

Closes #306
2026-10-12 20:01:22 +08:00
FAR 2eafe07718 feat(windows): 可选默认英文与按应用记住中英模式 (#308)
新增 [general] default_english 与 remember_mode_per_app,缺省都关,保持所有应用共用一份中英模式;打开后新应用从指定模式开始、切回应用时恢复它自己的中英状态(只记在本次 Server 运行期间)。
2026-10-12 19:10:07 +08:00
yenharvey c834b31d60 feat(windows): 任务栏「中 / 英」右键菜单加「旧版设置…」
- 与 macOS 输入法菜单一致:新设置程序打不开时,回退入口在平时点「设置…」的同一个菜单里
- 新增 IndicatorCommand::OpenLegacySettings,Server 起同目录的 qingjian-settings-legacy.exe;下个版本删旧版时一并删
2026-10-12 10:29:38 +08:00
yenharvey f325ddad78 feat(settings): 换掉旧设置程序,旧版留一个版本作回退
- macOS:设置程序作为独立 .app 装进 Qingjian.app/Contents/Applications,菜单「设置…」打开它,包里没有时退回旧版;原偏好设置改名「旧版设置…」
- Windows:qingjian-settings.exe 换成新程序(状态条齿轮、开始菜单「青简设置」),旧 WinUI 程序改名 qingjian-settings-legacy.exe,开始菜单「青简旧版设置」,互斥体与窗口标题分开以便同时开
- Linux:安装与预编译包带上 qingjian-settings 与应用菜单项
- 新程序:Windows 不弹控制台、嵌图标、只开一个;日志另写一份到输入法日志目录,按天留 7 天;随包数据按各平台安装布局找
- 测试 config_keys 离屏点遍每页控件,写了的键用输入法的 Config 读回核对;补上「英文模式也给候选」漏掉的 ⓘ
- ⓘ 点了打开官网文档对应的一段,测试核对锚点在 docs/user 里真有、行在那页上真有 ⓘ
- 用户文档按新的页重写设置一页,各处「偏好设置 → 通用」这类指路改成新页名;contributing「控件面原生」一条改为设置程序自绘
2026-10-12 10:07:26 +08:00