Commit Graph
67 Commits
Author SHA1 Message Date
yenharvey 4f37e9fd65 feat(settings): 新设置程序的候选页加上小键盘数字(Windows)
#354 只接了旧版 Windows 设置;新设置程序是主入口,按平台支持表只在 Windows 显示,macOS、Linux 记为待实现。文档同步到按键页与设置页。
2026-10-26 11:28:47 +08:00
jubeater 5e58194c6b feat(linux): 云联想补齐按需触发、用量统计与释义兜底 (#783)
Linux 的云服务只差按需联想、用量统计、释义兜底三项,对齐 Windows。
顺带两处 bamboo-slip 修复:Wayland 会话直连剪贴板(连不上回退 X11);秘密输入框聚焦时关输入法,免得密钥经云联想上报。

Closes #418
2026-10-26 10:01:27 +08:00
Haoyu Xi dd2657e305 feat: 词库导入支持只有词的表,读音按随包词库派生 (#787)
只有词的 txt 与混了无读音行的 Rime 词库以前认不出或静默丢词;现在按随包基础词库与领域词库派生读音,四个导入入口都接上。

Closes #698
2026-10-26 09:50:20 +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
yenharvey 4a076d4506 chore(release): 开发版 0.3.2-dev 2026-10-22 18:43:31 +08:00
yenharvey a5126ac090 chore(release): 0.3.1 2026-10-22 17:48:52 +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 58d5d4b2f7 chore(release): 开发版 0.3.1-dev 2026-10-22 16:31:42 +08:00
yenharvey ae89370e9f test(settings): 没有随包笔画表时不查「笔画」行的 ⓘ
CI 只有样例数据、也没装应用,随包码表列表是空的,这一行建不出来;本机能过是因为从已装的 Qingjian.app 里找到了笔画表。
2026-10-22 15:56:03 +08:00
yenharvey 393656df5e chore(release): 0.3.0
产品数据升到 data-v8:并入青简词库后的 dict.qj、补充词库 dicts/general.qj,去掉用不上的含章·知微。
2026-10-22 15:33:17 +08:00
yenharvey b6319013e8 feat: 候选右键菜单:置顶、降权、删除(#749)
macOS、Windows 右键候选(macOS 也可 ⌃ 点按)弹出菜单,菜单由青简自己画:
bamboo-slip 新增 PopupMenu 组件(与设置页下拉菜单同一套样式),
qingjian-render 的 render_menu 出位图,壳只给不抢焦点的弹出窗、管悬停与点击。

- 置顶:给当前输入码加一条比同码短语都高的自定义短语(封顶 999),可在设置里看到、改、删;取消置顶删掉它
- 降权:记进学习数据 user-demoted.tsv,每降一次往后挪一格,词库词也能降;可取消
- 删除:原来 Shift + 数字删候选的那套,挪进菜单;Shift + 数字删候选去掉,回到普通符号
- 菜单项与动作在平台层 candidate_menu,两个壳共用;Esc 只关菜单,敲键、候选窗重画或收起时关
- Linux 候选窗由 Fcitx 画,暂无此菜单
2026-10-22 14:39:00 +08:00
yenharvey 95b2e19684 feat(phrases): 自定义短语改按权重排
固定位置 1–9 换成可以直接填的权重(1–999,新建 10,可以相同):同一个输入码下权重大的在前,
相同的按列表顺序,都排在普通候选前面;与短语同字的普通候选去掉,不再出两遍。
旧配置的 position 读进来换成权重(第 1 位是 10),保存时原地改成 weight、注释保留。
Android 常用语的输入码上限与 Core 一致(32 个字母),以前存下的超长码转换时跳过,不再让整组常用语挂不上。
2026-10-22 12:23:34 +08:00
yenharvey ce616462f2 feat(settings): 随包「笔画」码表旁加 ⓘ,说明取码规则并链到文档 2026-10-22 12:23:32 +08:00
yenharvey c398f17c91 feat: 横排且高亮移动键选 ← / → 时,↑ / ↓ 在拼音行与候选之间切换
原来 ← / → 把拼音行和候选连成一条,要改拼音得先把高亮退到第一个候选,打句子时没法在中间改拼音。
这种组合下改成两区:↑ 进拼音行(候选不画高亮,空格照样上屏原来那个)、← / → 只移拼音光标,↓ 回候选,开了横排展开时再 ↓ 展开;矩阵第一行 ↑ 回拼音行、不收起;拼音行里再 ↑ 才开符号面板。
规则放在 Core 的 candidate::arrows::route,mac 与 Windows 两个壳只记焦点、执行动作;竖排、或横排用 ↑ / ↓ 移高亮时按键不变。
2026-10-22 11:39:09 +08:00
yenharvey a20a38acaf docs(user): 用户文档按用户要做的事重新分组
功能越加越多,原来按早期设置页搭的结构塞不下:几个大页(按键、拼音方案、主题)越写越长,同一功能散在几页。
现在分为开始使用、打字、学语言、个性化、AI 服务、各平台、隐私与帮助、进阶八组,一个功能只在一页讲全,别处一句话加链接。
配置键名、文件路径、文件格式只放进阶组,其他页只写「设置 → 某页 → 某项」,面向普通用户不出现实现词。
设置程序的 ⓘ 链接表、各 README、issue 模板与代码注释里指向旧页面的链接一并改到新地址。
2026-10-21 20:06:25 +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 5659b11025 docs(settings): 各页说明改短,只留怎么用 2026-10-21 19:16:14 +08:00
yenharvey 3be348d4e4 feat(settings): 「实验功能」页下载、启用、删除知意与含章·知微
两边同时取清单,先回来的先下,不通换另一边;逐块与整包核对 SHA-256,解到临时目录再换进模型目录。
mac 壳按 [model] name 加载,换档当场生效。Windows、Linux 登记待实现。
2026-10-21 19:16:08 +08:00
yenharvey db5d6fe325 feat: 拼音行按高亮候选切分,可选显示带调拼音
- 一串拼音有几种分法时,拼音行按高亮候选的读音切(ganga 高亮 尴尬 是 gan'ga、刚啊 是 gang'a),应用里的行内拼音跟着换;Core 的 Query::spelled / follow,mac、Windows、Linux 壳在高亮变化时重切
- [general] show_tones(设置 → 候选 → 拼音行显示声调,缺省关):候选窗口顶部的拼音换成高亮候选的带调读音,简拼也换成完整读音;读音与输入对不上的不换;应用里的拼音不带调
- 声调先按词库里的词取,整句从左往右取最长的词,没标的字按单字声调表补,拿不准的不标;注音、九宫格不标
- Frame 加 window_preedit 给候选窗口单独一串拼音,DLL 不读,不升协议版本
- Linux 的 Fcitx 面板与行内拼音共用一串,声调先不接,设置表登记待实现
2026-10-21 16:04:34 +08:00
yenharvey 0ca1b95419 feat: 并入青简词库,已清洗的进基础词库,其余作补充词库随包
- dict-convert lexicon --general / --cleaned:基础词库已有同读音的补声调、词频不动;读音不同的新读音按 1/8 收;
  其余按两边同读音词在对数坐标拟的直线换算词频。已清洗的 21.2 万条写 dict-cleaned.tsv,pack dict 与 dict.tsv
  合成 dict.qj(34.5 万条);其余 129 万条写 dicts/general.qj(GPL-3.0-or-later),缺省开着,设置「词库」页可关。
  都不进 bigram 分词,dict.tsv 除声调外不变,语言模型不用重跑
- 补充词库低主词库一档:不当前缀补全、精确命中不进排序第一档、兜底与词图格子预选多扣 2、不计入总词频;
  词图选中它的整词照样插到最前
- 「敲的拼音本身就是一个词就不走敲错路径」只认语言模型认识的主词库词,否则 zanen / jiusi 纠不回 咱们 / 就是
- 领域词多音字按语料猜读音打平时取 Unihan 靠前的读音,结果不再每次跑都不一样

冻结回放:词首选 8104 → 8167、整句 2845 → 2827(逐条核实词 25 好 2 坏、整句 14 好 12 坏,其中 2 条是当时选错的 输入狂);
整句评测集首选 37.6% → 38.9%、前三 43.4% → 46.0%。
2026-10-21 15:05:10 +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 eb0e3ce19a feat(learning): 剪贴板、常用语、面板使用次数与统计派生数,PC 壳跟上
- ClipboardHistory 与 PhraseBook:剪贴板历史(含图片)和常用语的存取,常用语输入码上限 64 个字母
- PanelUsage 记符号 / 表情面板用过的次数,Linux / macOS / Windows 装配时接上
- usage_stats::figures:速度、首选率、最多的一天等派生数两端共用,「本周」统一为近 7 天(含今天),设置程序与旧版设置改调它
- FrequencyLearner::files 列出词频文件与各侧车表(导出、清空用)
- 设置程序的模糊音与学习语言清单改读 Core
2026-10-20 20:35:18 +08:00
yenharvey 05012b8b04 feat(core): 分次选词先留在组句里,退格撤回上一次选择
用户群反馈:长词组前面选错了退不回去,退格只会从最后一个拼音往前删。
一段拼音分几次选时,选的词先不交给应用,显示在剩下的拼音前面,整段选完才一起上屏;
退格先撤回最后一次选择、那段接回拼音重选,那次记的学习按整个删掉处理,改选别的词时退回。
回车 / 失焦连同剩下的拼音原样上屏,Esc 全部取消;组句中敲标点时壳先取走留着的词,标点接在后面。
[general] hold_selections 缺省开,关掉是选了就上屏;命令行回放按日志逐键重喂,固定关。
2026-10-20 17:34:30 +08:00
yenharvey d2e70ea75c feat: 悬浮状态条大小不再跟候选字号,另设大小滑块
候选字号调大后状态条跟着放大,比候选窗口还显眼(用户群反馈)。
状态条改按主题原样画,大小由 [status_bar] size(60%–150%,缺省 100%)单独定,设置的中英文页加滑块。
百分比滑块挪到共用控件,键位提示与状态条共用。
2026-10-20 17:34:14 +08:00
yenharvey bb697083b8 feat(macos): 合并额外翻页键、标点切换与按需云联想
# Conflicts:
#	apps/macos/src/host/mod.rs
#	apps/macos/src/imk/controller/text.rs
2026-10-20 16:04:12 +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 f6d3c2a38a feat(macos): 额外翻页键、Ctrl + . 切换标点与按需云联想
补上 Windows 已有、mac 缺的三项设置,行为照 Windows:
- 额外翻页键与主翻页键一起认,组句中优先翻页
- 标点切换键只切中文模式的全半角:mac 英文模式一律半角,这时键交给应用
- 按需联想 ⌃⌥J 不等停键、自动联想关着也发,结果排在第一页最前面;停键等待与最短间隔本就在共用的联想模块里生效
2026-10-20 15:12:02 +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
yenharvey 8b4d78a081 feat(macos): 候选行接上「译词显示词性」开关
macOS 候选行原来不看 translation_pos,只要有词性就画;现在读 [general] translation_pos,关掉时只画译词。设置程序在 macOS 上也显示这个开关,用户文档去掉「仅 Windows、Linux」的限定。

Closes #430
2026-10-19 16:50:48 +08:00
yenharvey 0f34de7cc6 feat(linux): Fcitx5 面板接上「译词显示词性」开关
Linux Server 原来把 translation_pos 写死为开;读 [general] translation_pos 下发到帧,#696 加的注释按它决定带不带词性,设置程序在 Linux 上也显示这个开关。
2026-10-19 15:49:53 +08:00
yenharvey c97ff2b619 feat: 生词本:按天的时间线与词表,整句翻译后一并记下
设置新增「生词本」页,分「时间线」与「词表」两个视图,按学习语言分开
时间线:每次上屏有学习语言说法的中文记一条(vocab-log.tsv),大字的相遇次数、当天第一次见到的生词、连续输入天数、按小时的记忆色带,说法在上中文在下带时刻
整句(一次上屏的,与分几次打完、至少四个汉字的一句)在 macOS / Windows 开着云服务时攒批翻译后记进时间线,「云服务」页可单独关闭「生词本整句翻译」
词表:译词、中文、例句与次数,可筛选、排序、搜索、标认识、删除;之前只有英文的老记录用随包英→中释义补上中文
导出 CSV / Anki / 网页,清空连同时间线
user-vocab.tsv 在原七列后加认识、中文、例句三列,老文件照读;输入法与设置程序写前互相合并删除与「认识」
读音一列先只有日语假名,留给以后的音标;发音以后接系统朗读

Closes #570
2026-10-16 16:43:19 +08:00
Wenjie Zou ebc476a820 feat(linux): 完善云联想与选区翻译,适配 Ubuntu 22.04 的 Fcitx4 (#351) 2026-10-16 12:41:13 +08:00
Haoyu Xi 7f46275c5c feat(windows): 译词旁的词性标注可关 (#658) 2026-10-16 11:27:09 +08:00
yenharvey e4975c1b6b feat(macos): 高亮移动键可选 ← / →
与 Windows 同一套规则:选 ← / → 时左右键把「拼音行 + 候选栏」当一条序列走,上下键组句中不动(吃掉,不漏给应用);
设置程序的支持表 macOS 改为支持,文档去掉「Windows」限定。
2026-10-16 10:43:57 +08:00
GH a00034f8f9 feat(windows): Windows 平台支持横排候选展开成多行矩阵 (#403) 2026-10-16 10:21:26 +08:00
Chao Song cc08b48c3c feat(windows): 按需云联想快捷键与自动联想开关 (#564)
组句中按 Ctrl+Alt+J 手动请求云候选,结果置前;可关掉自动联想、调停键等待和最短间隔,新旧设置都能改。

Closes #177
2026-10-15 19:24:20 +08:00
yenharvey 95161e3a75 style(settings): import 按字母排 2026-10-15 18:18:38 +08:00
yenharvey e942cd8cd3 feat(settings): 统计页分输入 / 云服务两层,加日历格子图与过去 24 小时
两层一样的结构:今天、本周、本月、累计四张卡,近一年格子图(周日在上,同 GitHub),过去 24 小时柱状图,再下面详情。
输入层详情有速度(上屏汉字除以在打字的时间)、首选率、一次打对、平均码长;--png 截图最后装样例数据拍这两层。
2026-10-15 18:07:42 +08:00
yenharvey 42e8dff03e fix(settings): 主题卡片按宽度铺满一排
字号放大后卡片还是固定宽,一排三张右边空一大块;改成放得下几张就放几张再均分,缩略图跟着放大。
2026-10-15 18:07:41 +08:00
yenharvey 48470359b7 feat(macos): 云联想、释义兜底与测试连接记用量
以前只有 Windows 记,mac 的统计页看不到 Token;Linux 的输入法还没接云服务,支持表里仍是待实现。
2026-10-15 18:07:41 +08:00
yenharvey 7a4cb7091e feat(core): 上屏统计多记首选、键数、打字时长与删过
速度、首选率、码长、一次打对要从每次上屏数起:Typing 从上一次上屏数键数与时长,键间停顿超过 5 秒不算,词与词之间的间隔算。
键数、时长与打出汉字只记有汉字的选词上屏,英文候选敲了键没出字,不进速度与码长。
2026-10-15 18:07:41 +08:00