Skip to content

Latest commit

 

History

History
60 lines (50 loc) · 2.93 KB

README.zh_CN.md

File metadata and controls

60 lines (50 loc) · 2.93 KB

FontMod

English 简体中文 繁体中文

修改 Win32 程序字体的简单的 hook 工具。可用于一些基于 GDI 或者 Qt 的程序。

经测试可用于 Telegram DesktopKleopatra (Gpg4Win)Mendeley Desktop

使用方法

下载 FontMod.dll 并重命名为 winmm.dll,然后放在程序 exe 所在的文件夹里。
用户字体:把字体文件放在 fonts 文件夹内,可以直接使用,无需安装到系统中。

配置文件

初次运行时会创建 FontMod.yaml。配置文件使用 UTF-8 编码。支持 UTF-8 BOM。

style: &style
# Remove '#' to override font style
#  size: 0
#  width: 0
#  weight: 0
#  italic: false
#  underLine: false
#  strikeOut: false
#  charSet: 0
#  outPrecision: 0
#  clipPrecision: 0
#  quality: 0
#  pitchAndFamily: 0

fonts:
  SimSun: &zh-cn-font # Chinese (Simplified) fallback font
    replace: Microsoft YaHei
    <<: *style
  PMingLiU: # Chinese (Traditional) fallback font
    replace: Microsoft JhengHei UI
    <<: *style
  MS UI Gothic: # Japanese fallback font
    replace: Yu Gothic UI
    <<: *style
  Gulim: # Korean fallback font
    replace: 맑은 고딕
    <<: *style

fixGSOFont: true # true is to use system UI font
#fixGSOFont: *zh-cn-font # Or replace with user defined font
debug: false
  • fonts

    • key ("SimSun"): 要修改的字体名称。
    • replace / name: 要替换成的字体名称。
    • size width weight italic underLine strikeOut charSet outPrecision clipPrecision quality pitchAndFamily: 覆盖原始字体样式。请参见 MSDN 文档。如果不想覆盖的话请把这些项删除。
  • fixGSOFont 替换 GetStockObject 字体,选项与前面的 fonts 相同。若设为 true 则会使用 SystemParametersInfo 获取系统字体。

  • debug 调试模式 (会记录相关信息到 FontMod.log)。

YAML 支持 锚点(&)引用(*) (请参见 维基百科),此工具还支持 YAML 标准中非强制的键值合并 (Merge Key) 功能。你可以像上面的配置文件那样重复使用数据,而不需要像 JSON 那样把数据复制多份。

如果只想替换 CJK 字体,保留英文字体不变,你需要将 key 设为 CJK 的 fallback 字体。这个字体在不同语言环境下可能不一样 (比如简体中文是 SimSun),你可以使用 debug 模式找到对应的字体。