Use native candidate actions and harden frontend resource loading
This commit is contained in:
1 parent
99fe8f589f
commit
d8e780dfa1
18 files changed
+1083
-227
No files matched your search
@@ -10,7 +10,7 @@
|
||||
刚度、阻尼、方向、距离都可以调。
|
||||
- 在候选词上**右键**打开动作菜单,内容取决于输入法提供的动作。拼音有
|
||||
"忘记候选词 / 置顶为自定义短语 / 从自定义短语中删除"。
|
||||
- **忘记候选词后不会再出现**,包括系统词库和扩展词库里的词(见下文"屏蔽列表")。
|
||||
- 候选菜单只调用引擎提供的原生动作,不在前端屏蔽词语。
|
||||
- Wayland 和 X11(Xwayland)输入上下文都支持,定位和鼠标处理沿用 `classicui`。
|
||||
- 可选的 KWin 辅助脚本:只缩短候选框自己的 KWin 淡出时间。
|
||||
|
||||
@@ -104,23 +104,23 @@ systemctl --user daemon-reload && systemctl --user restart app-org.fcitx.Fcitx5@
|
||||
`SurfaceColor` 完全透明时回退到 classicui 的图片绘制,所以原有的 classicui
|
||||
主题仍然可用(但没有动画)。
|
||||
|
||||
## 屏蔽列表
|
||||
## 候选动作与资源防护
|
||||
|
||||
拼音引擎的"忘记候选词"只会删除你自己打字学到的词,系统词库(`sc.dict`)和
|
||||
扩展词库里的词是只读的,忘记之后重新输入仍会出现,当前输入状态里也一样。
|
||||
右键菜单只显示引擎的 `candidateActions()` 并通过 `triggerAction()` 调用。
|
||||
“忘记”由引擎处理,不保证永久隐藏或降低到某个排名。前端不再读取或写入
|
||||
旧的 `blocked-words.txt`,已有文件不会被删除。
|
||||
|
||||
所以 m3ui 在你点"忘记候选词"时,会把这个词记到
|
||||
`~/.local/share/fcitx5/m3ui/blocked-words.txt`(一行一个词),并在每次刷新候选
|
||||
之前把它们从候选列表里摘掉。
|
||||
图片限制为 16 MiB 文件、单边不超过 8192 像素、总计不超过 16 Mi 像素。
|
||||
SVG 渲染一次后缓存为位图,异常资源回退到既有主题或文字图标。
|
||||
这些限制不是解码沙箱,不能保证复杂 SVG 的处理时间,也不能替代底层库安全更新。
|
||||
|
||||
- 按候选词的完整文字精确匹配,只隐藏这个词本身。
|
||||
- **重启不会丢**:文件是原子写入的(先写临时文件、`fsync` 再改名,中途被杀也不会留下写坏的文件),
|
||||
权限是 `600`;某次保存失败时这个词在本次运行里仍然隐藏,下次会重试写入。
|
||||
- 文件被别的程序或手动修改后会自动重新读取,不用重启。
|
||||
- 只有**通过右键菜单点"忘记候选词"**才会记录。用拼音自带的快捷键(`Ctrl+7`)忘记的词不会被记录,
|
||||
这类词如果来自系统词库,下次还会出现。
|
||||
- 想恢复某个词:删掉文件里对应的一行即可。
|
||||
- 这是界面层的补充。换回原版 classicui 后,这些词会重新出现。
|
||||
`patches/fcitx5-icon-cache.patch` 修复核心图标缓存的循环链、越界、
|
||||
字符串终止和映射文件截断问题,损坏缓存回退为文件查找。
|
||||
`build.sh` 会检查并应用此补丁;但 `install.sh` 只安装插件,
|
||||
**不会替换运行中的 Fcitx5 核心库**,所以仅安装插件不代表核心修复已部署。
|
||||
|
||||
构建后可运行 `bash scripts/test.sh` 验证候选菜单、缓存和真实图片解码。
|
||||
也可通过 `FCITX_SOURCE_DIR`、`FCITX_BUILD_DIR` 指定已有源码和构建目录。
|
||||
|
||||
## KWin 淡出(可选,KDE Plasma)
|
||||
|
||||
|
||||
Reference in new issue
Block a user