为 Telegram Desktop 替换字体

注意!Telegram Desktop 2.1 版本起,其使用的 desktop-app/lib_ui 库开始默认使用 Microsoft YaHei 作为 fallback 字体,你可能只需要更新客户端就能解决问题,但你仍可以使用本文的方法替换字体。

Telegram Desktop 的字体一直让人诟病,有人选择用 MacType 解决问题,但我个人并不想用这种软件,所以一直忍受着屎一样的字体...
终于,在今天偶然的吐槽中得到了一个很不错的解决方案,先看看效果吧:

替换前:
替换前


替换后:
替换后


是不是顺眼多了?使用也很简单:
下载FontMod.dll,重命名为winmm.dll,放入 Telegram Desktop 的根目录内,最后重启一下客户端即可生效
(如果你没有更改客户端默认安装位置,直接在资源管理器地址栏输入 %APPDATA%\Telegram Desktop 即可)


重启客户端之后你会在根目录看到一个FontMod.yaml,默认配置会把 SimSun 替换成 Microsoft YaHei,当然也可以修改配置来替换其他字体:

  • key ("SimSun"):要修改的字体名称。
  • replace/name:要替换成的字体名称。
  • size width weight italic underLine strikeOut charSet outPrecision clipPrecision quality pitchAndFamily:覆盖原始字体样式,请参见 MSDN 文档,如果不想覆盖可以把这些项删除。
  • fixGSOFont:替换 GetStockObject 字体,若设为 true 则会使用 SystemParametersInfo 获取系统字体。
  • debug:调试模式,会记录相关信息到 FontMod.log

FontMod 是一个修改 Win32 程序字体的简单的 hook 工具,可用于一些基于 GDI 或者 Qt 的程序。
注意!不同 版本/语言 的 Windows 字体名可能不一致。

以上就是无痛替换字体的方法了,感谢谦谦的推荐,终于解决了一个心头大患(╯°Д°)╯︵

标签: Telegram 字体


已有 21 条评论
  1. Jaleo Jaleo

    多谢分享!
    经过测试,中英文系统下的方法有点不一样。
    Win10 中文版:winmm.dll放入目录,运行TG,自动生成TGFont.json,默认把宋体更换成雅黑了。
    不需要额外设置,直接可以显示完美的雅黑字体了。

    Win10 英文版:winmm.dll放入目录,同时编辑TGFont.json,和博主的代码不同,Open Sans替换成Segoe UI,去掉Open Sans Semibold的替换代码。
    这样英文系统下TG显示的中英文字体才会和中文系统下的一模一样。

  2. (。・∀・)ノ゛赞!终于可以丢掉宋体了!

  3. 666,学习了,忍那个难看的字体很久了

  1. 1
  2. 2

添加新评论