github ayss2188/custom-font-switcher v1.3.8
自定义字体切换模块 v1.3.8

latest releases: v1.5.3.1, v1.5.3, engine-v1.0...
24 days ago

v1.3.8

遇到问题请发一份诊断报告(在「遇到问题?」里点「一键上报」)。

🐞 修好了「中文一直是系统原来的字体」(重要)

三星等机型的中文来自 .ttc 合集(例如 SECCJK-Regular.ttc,字体配置里写 index="2"),
模块要把你的字体包成"同样多 face 的合集"才能顶替它。

从 v1.3.5 起这一步一直没有生效:安装时保存"哪个合集的哪几号是中文"的那份清单,
写的时候先把它自己截断成了空文件;读取端又把"空"当成"这台机器没有中文合集",
于是合集替换被永久关掉。

结果就是:清单里的 151 个 .ttf 槽位全都换掉了(界面显示 151/151 全部生效),
但中文走的那几个合集没换,所以看着还是系统原来的字体。

现在:

  • 写清单改成先写临时文件再替换,不会再把自己清空
  • 读到清单后正确输出(原来读到了内容却没有输出,只能退化成"只换 2 号")
  • 升级时清掉旧清单、重新算一次 —— 装了旧版的机器升级即自愈,不用手动删文件
  • 合集只换中文那几号 face,日文/韩文保留原字形,不会被牵连

🐞 修好了「字体大小显示成 1 KB」

大小改成读导入时记下的真实字节数;读不到就显示「—」,
不会再编一个 1 KB 出来。升级时还会把老记录里缺失的大小补齐。

🐞 修好了「切保留锁屏时钟开关后,软重启不生效」

切换这个开关会让要替换的槽位变少(151 → 119),少掉的正是时钟槽位。
而软重启只"挂新的",没人去撤旧的,所以时钟看起来还是被替换了。
现在重新应用时会记下上一份计划,软重启前按差集把旧槽位撤掉,再挂新的。

🐞 修好了「界面一直显示正在读取」

list 不再对字体文件做 stat。之前只要字体库里有一个失效的挂载点,
stat 就会卡在不可中断状态,界面就一直等在那里。

⚡ 变快

  • 「免重启」第二步不再重复挂载(原来把第一步刚挂好的又卸了重挂一遍)
  • 挂载合并成一次调用(bind + 只读),每个槽位少一次进程
  • 已经挂好的槽位批量查表跳过,不再逐槽 stat
  • 免重启第一步只撤"该撤的",不再全量 151 个

🔧 其它

  • 升级(版本变化)会重新扫描槽位、重新合成中文合集,旧版留下的派生数据一律作废
  • 安装日志如实反映"是复用扫描结果还是重新扫了一遍"
  • 诊断报告里「建议补进清单的字体」那一节之前是空的(函数定义写在调用之后),已修
  • 卸载:字体库删不干净时会明确告诉你(Download 里留说明);
    卸载请求排队后你又把模块装回来了,则不会误删字体库
  • 包内不再带开发备注 / 备份文件

📌 说明

  • 字体、设置、当前选择都不会丢
  • 更新模块不会动字体库;只有卸载才会删
  • 若选字体后开不了机,下次开机会自动恢复为「无字体」

Don't miss a new custom-font-switcher release

NewReleases is sending notifications on new releases.