Repository navigation
SnipForge 0.2.0
Pre-release
Pre-release
[0.2.0] - 2026-11-03
剪贴板 · 富文本与隐私
对照 TieZ 的剪贴板实现补齐三块:
- 富文本 HTML 保留(以前挂在 📋 计划里的那条)。采集时读 Windows 的
HTML Format,粘贴时同时写CF_UNICODETEXT和 HTML —— 从网页复制的表格、
带样式的文字,粘到 Word / 邮件 / 飞书里格式不丢;记事本、终端这类只认纯文本的
地方照常能粘。去重仍按纯文本 hash:同一段话复制两次不该变成两条历史 - 隐私遮罩预览:列表里手机号、身份证、银行卡、邮箱自动打码
(138****8000/110101********1234)。只影响显示,选中后写进剪贴板的
还是原文。面板和主窗口都生效 —— 投屏、录屏、旁边有人的时候不至于把证件号念出来 - 按来源程序筛选:卡片底部的程序名现在可点,点一下只看那个程序里的复制记录;
再点一下(或点顶部「来自 xxx ✕」)取消 - 粘贴为纯文本:面板里
Alt+Enter,丢掉网页带来的字体颜色等样式,
只把文字塞过去。配合上面的富文本保留,两种场景各取所需
不做的事:WebDAV / MQTT 跨设备同步。这个工具的定位是本地常驻,剪贴板历史里
经常有密码和证件号,不上传比"能同步"重要。
鼠标手势 · 支持画字母
以前只能认方向(←→↑↓ 及其组合)和 S / H 两个形状,画 W、V、B、M
一律落到"未绑定"。原因是形状和方向串共用同一批字符:D 既是"向下划"
又是"字母 D",加一个字母就得跟方向抢名字。
现在按主流工具的做法拆开:
- 一笔画字母基本都认:A B C D E F G H J K L M N P R S T U V W X Y
(I是一条竖线、等于方向串;O是闭合圆;Q一笔画不自然) - 形状用
@前缀,和方向串分处两个命名空间:@W是字母,DR是方向。
用户手写W也认(自动补前缀) - 形状没绑动作时自动回落方向串:画 Z 会先认成
@Z,没绑就落回RLR,
「画 Z 排除当前程序」照常工作,不需要为每个字母补绑定 - 配置迁移 v4:老绑定里的
S/H自动改成@S/@H S补了两个斜写模板(±10°):点云不抗旋转,以前斜着写 S 认不出- 形状识别从主 crate 搬到
snipforge-core,第一次有了真正能跑的测试
(letters_recognize_themselves:每个字母 6 个抖动/缩放变体必须认回自己)
鼠标手势 · 手感修复
反馈「划起来不流畅、不灵活,和其它手势工具差距极大」。定位到四个实现问题,
全部在轨迹层和默认参数上,与 UI 框架无关:
- 不再每帧重建 GDI 资源:画笔、画刷、字体改成随窗口缓存,只在分辨率或
轨迹色变化时重建。以前每帧CreateFontW一次,字体面查询就是几毫秒 - 重绘合并 + 66fps 上限:高刷鼠标每秒上千次位移,以前每次都投递一次重绘,
消息队列被灌满,表现是轨迹越划越落后于光标 - 只贴脏区:以前每帧清空并回贴整个虚拟屏(4K 双屏 800 万像素每帧),
现在只处理「轨迹包围盒 ∪ 浮标包围盒 ∪ 上一帧范围」 - 灵敏度默认值 30/55 → 16/38:旧值划一小段没反应、短促手势划不出方向。
配置里两个值都还是旧默认的自动升级(v3 迁移),自己调过的不动 - 浮标停留 520 → 240ms:连续划两个手势不再互相干扰
- 轨迹采样加 2px 阈值,去掉一像素一报的抖动点
决策记录
- 新增
docs/ADR-001-ui-stack.md:评估 Rust + egui 迁移,结论是不迁。
内存 27 MB 不是瓶颈,且 egui 的立即模式对全屏覆盖层是负优化;
手势卡顿的根因在 GDI 重绘方式,换框架解决不了。文档里留了重新评估的触发条件