初入 Vibe Coding 成果介绍
最近用 Codex 一通 Vibe Coding,试着做了两个项目,分别是「Sarasa Ui PropDigits」与「Windows System Font Modifier」。拢共应该花了 500M Tokens。下面是两个项目的 README.md 的摘录。
10 月 11 日更新:现在应该花了 5B Tokens 不到。
更纱黑体 Ui PropDigits SC
为什么要制作它?
曾几何时,我试图使用更纱黑体(Sarasa Gothic)作为 Android 手机的默认字体(因为个人更喜欢 SF Pro / Inter 而非 Roboto),但由于修改软件只支持一个字体,我需要一个可变字体。但可惜的是,原版更纱并不支持,我只好自己动手,用 Codex 中的 GPT-6 Astra 制作了本字体的可变版本;静态版本以及比例宽数字则是源于我对其成为 Unigram / Windows 默认字体的需要。
而到了 2026 年 8 月,随着上游、各个工具链(如 Node 版本)及我自身需求的更新,我用 GPT-6 Astra 将版本号刷到了 1.0.40(上游更新的是 Mono 版本,与本项目没有直接关系),同时添加了 chws / vchw 这两个 OpenType 特性,以方便在不能使用 CSS 的 text-spacing-trim 的情况下启用标点挤压。
简介
Sarasa Ui PropDigits 是面向中西文混排的更纱 Ui 衍生字体。当前版本为 v1.0.42,上游同步到 Sarasa Gothic 1.0.42;2026-10-06 修订版同步更新该 tag 的源码和 Release 发布文件。
字体菜单中的家族名缩写为 Sarasa Ui PD <地区>,可变系列为 Sarasa Ui VF PD <地区>,本地化名称同样使用 PD。字重名称不缩写;文件名和 ZIP 名仍保留 PropDigits。
六地区共 12 个 VF、144 个原生静态 TTF。每地区提供可变、hinted 静态、unhinted 静态三个包,加上三个全地区包,共 21 个 ZIP;不制作 TTC 或 SuperTTC。
| 地区 | CJK 字形来源 | OS/2 码页范围 1 |
|---|---|---|
| CL | Source Han K 基底,Shanggu Sans TC 1.028 的传统旧字形及 CJK 全宽破折号 | 0x8010019F |
| SC | Source Han Sans SC | 0x8004019F |
| TC | Source Han Sans TC | 0x8010019F |
| HC | Source Han Sans HC | 0x8010019F |
| J | Source Han Sans J | 0x8002019F |
| K | Source Han Sans K | 0x8028019F |
CL 的公开 cmap 和 layout 按 Sarasa Ui CL 的地区边界裁剪;西文标点仍使用 Source Han K。静态字体的 post 使用 format 3,不人为生成持久化字形名称。家族名、样式、实例名和 PostScript 名一起更新,并检查 Windows 的 31 字符限制。
下载与使用
以 SC 为例:
| 包名 | 内容 |
|---|---|
Sarasa-Ui-VF-PropDigits-SC-TTF-1.0.42.zip | 正体、斜体两个可变 TTF |
SarasaUiPropDigitsSC-TTF-1.0.42.zip | 六字重正斜体,共 12 个 hinted 静态 TTF |
SarasaUiPropDigitsSC-TTF-Unhinted-1.0.42.zip | 六字重正斜体,共 12 个 unhinted 静态 TTF |
只接受单个字体文件且支持可变 TTF 的工具,可选对应地区的正体 VF;斜体另有文件。实际字重、语言、文字系统和 OpenType 特性由应用选择。字体本身不包含 Android 或 Windows 的系统字体替换工具。
从旧版升级后,请在应用字体菜单重新选择带 PD 的家族;文件名沿用 PropDigits,内部家族名已更新。
字重
| 公开坐标 | 样式 | Source Han 内部坐标 | Inter 坐标 |
|---|---|---|---|
| 200 | ExtraLight | 250 | 200 |
| 300 | Light | 300 | 300 |
| 400 | Regular | 400 | 400 |
| 600 | SemiBold | 500 | 600 |
| 700 | Bold | 700 | 700 |
| 900 | Heavy | 900 | 900 |
350 仅为隐藏 avar 锚点,CJK 与 Inter 均映射到 350,不提供命名实例。构建先应用 Source Han public axis,再重映射 Inter 的 gvar 和 GPOS 变化;顺序不可反转。公开 600 是 Source Han Medium 500 与 Inter SemiBold 600 的组合。
Windows System Font Modifier
为什么要打造它
起初,我长期习惯于使用 4K 分辨率的显示器,可在我接触 Vibe Coding 以后,因为各种众所周知的缘故,我被迫拾起了家中那台饱经风霜的 Surface Go 3(屏幕分辨率为 1920 x 1200)作为远程桌面用机。可由于 Windows 设计糟糕的默认字体(同样字号,Chrome 中的思源黑体看上去十分优雅,而输入法中的微软雅黑却是古老的像素风格)与其渲染机制(短暂地试用过 MacType,其实效果不错,但其覆盖面太窄),我只好拿出 Codex 使用 GPT-5.5 做出了此脚本。
这是什么
这是一套 Python 脚本,能把 Windows 系统界面字体换成你电脑上已经安装好的字体。
这个工具是离线的:不下载字体,不访问网络,不自带字体文件。你先在 Windows 里安装好想用的字体,然后用本工具把它生成成 Windows 系统 UI 会识别的 surrogate 字体,再写入相关注册表。
它能改什么
它会尽量覆盖这些地方:
- 传统 Win32 界面:文件资源管理器、旧式对话框、部分桌面程序。
- DirectWrite / WinUI:设置、开始菜单、任务栏、搜索、部分输入法界面。
- 中文 fallback:
Microsoft YaHei/Microsoft YaHei UI。 - 英文 UI:
Segoe UI/Segoe UI Variable。
它不会覆盖微软原始字体文件,例如:
segoeui.ttfSegUIVar.ttfmsyh.ttc