前言
之前的 FontSubstitutes 方案和 FontLink 方案分别介绍了虚拟 UI 字体和中文回退链的配置。本文继续沿用这套思路,以 Microsoft YaHei UI 为例设置标准 UI 字体。示例中的字体名称和字体文件都可以替换,明确请求 SimSun 的程序仍使用真实宋体。
可以按程序使用的字体路径选择配置:
| 配置位置 | 适用场景 |
|---|---|
FontSubstitutes |
winecfg 和使用 MS Shell Dlg 的对话框 |
WindowMetrics |
标题栏、菜单、消息框、状态栏和 GTK 默认 UI |
FontLink\SystemLink |
直接请求 Tahoma 等字体时的中文回退 |
三项配置可以单独使用,也可以组合使用。
确认目标字体可用
以微软雅黑为例,字体文件通常位于:
/usr/share/fonts/TTF/msyh.ttc
/usr/share/fonts/TTF/msyhbd.ttc
Wine 的用户字体目录为:
C:\users\<用户名>\AppData\Local\Microsoft\Windows\Fonts
需要安装时,将字体文件放入该目录即可。
FontSubstitutes:设置对话框字体
winecfg 的资源文件使用 FONT 8, "MS Shell Dlg",可以直接将两个虚拟 UI 字体设为目标字体。
保存为 wine-ui-font-fontsubstitutes.reg:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"MS Shell Dlg"="Microsoft YaHei UI"
"MS Shell Dlg 2"="Microsoft YaHei UI"
导入:
wine reg import wine-ui-font-fontsubstitutes.reg
恢复为默认值:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"MS Shell Dlg"="SimSun"
"MS Shell Dlg 2"="Tahoma"
WindowMetrics:设置标准 UI 和 GTK 默认字体
HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics 中的各项分别控制:
CaptionFont:标题栏;SmCaptionFont:小标题栏;MenuFont:菜单;MessageFont:标准消息框和对话框;StatusFont:状态栏、部分工具提示;IconFont:图标标题。
GTK 在 Windows 上通过 NONCLIENTMETRICSW.lfMessageFont 构造默认的 gtk-font-name,因此这组配置也适用于 GTK3/GTK4 的默认 UI。
这些值是 92 字节的 LOGFONT 数据。以下示例保留原有字号和字重,只将字体名称改为 Microsoft YaHei UI。
展开 wine-ui-font-windowmetrics.reg
```reg Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics] "CaptionFont"=hex:f3,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "IconFont"=hex:08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "MenuFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "MessageFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "SmCaptionFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "StatusFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ```导入:
wine reg import wine-ui-font-windowmetrics.reg
示例使用 96 DPI 下的字号。使用其他 DPI 或主题字号时,可以先导出当前值,再只修改第 29 字节开始的 UTF-16LE 字体名称:
wine reg export 'HKCU\Control Panel\Desktop\WindowMetrics' windowmetrics-original.reg /y
展开恢复用 windowmetrics-tahoma.reg
```reg Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics] "CaptionFont"=hex:f3,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,54,00,61,00,68,00,6f,00,6d,00,61,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "IconFont"=hex:08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,54,00,61,00,68,00,6f,00,6d,00,61,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "MenuFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,54,00,61,00,68,00,6f,00,6d,00,61,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "MessageFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,54,00,61,00,68,00,6f,00,6d,00,61,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "SmCaptionFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,54,00,61,00,68,00,6f,00,6d,00,61,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 "StatusFont"=hex:f5,ff,ff,ff,00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,00,00,00,01,00,00,00,00,54,00,61,00,68,00,6f,00,6d,00,61,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 ```FontLink:设置中文回退字体
直接请求 Tahoma、Microsoft Sans Serif 或 Lucida Sans Unicode 的程序,可以使用下面的回退配置,让中文优先显示为目标字体。SimSun 仍保留在后续回退链中。
展开 wine-ui-font-fontlink.reg
```reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] "Tahoma"=str(7):"MSYH.TTC,Microsoft YaHei UI\0SIMSUN.TTC,SimSun\0MINGLIU.TTC,PMingLiu\0MSGOTHIC.TTC,MS UI Gothic\0BATANG.TTC,Batang\0MSJH.TTC,Microsoft JhengHei UI\0YUGOTHM.TTC,Yu Gothic UI\0MALGUN.TTF,Malgun Gothic\0SEGUISYM.TTF,Segoe UI Symbol" "Microsoft Sans Serif"=str(7):"MSYH.TTC,Microsoft YaHei UI\0SIMSUN.TTC,SimSun\0MINGLIU.TTC,PMingLiu\0MSGOTHIC.TTC,MS UI Gothic\0BATANG.TTC,Batang\0MSJH.TTC,Microsoft JhengHei UI\0YUGOTHM.TTC,Yu Gothic UI\0MALGUN.TTF,Malgun Gothic\0SEGUISYM.TTF,Segoe UI Symbol" "Lucida Sans Unicode"=str(7):"MSYH.TTC,Microsoft YaHei UI\0SIMSUN.TTC,SimSun\0MINGLIU.TTC,PMingLiu\0MSGOTHIC.TTC,MS UI Gothic\0BATANG.TTC,Batang\0MSJH.TTC,Microsoft JhengHei UI\0YUGOTHM.TTC,Yu Gothic UI\0MALGUN.TTF,Malgun Gothic\0SEGUISYM.TTF,Segoe UI Symbol" ```导入:
wine reg import wine-ui-font-fontlink.reg
展开恢复用 wine-ui-fontlink-default.reg
```reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink] "Tahoma"=str(7):"SIMSUN.TTC,SimSun\0MINGLIU.TTC,PMingLiu\0MSGOTHIC.TTC,MS UI Gothic\0BATANG.TTC,Batang\0MSYH.TTC,Microsoft YaHei UI\0MSJH.TTC,Microsoft JhengHei UI\0YUGOTHM.TTC,Yu Gothic UI\0MALGUN.TTF,Malgun Gothic\0SEGUISYM.TTF,Segoe UI Symbol" "Microsoft Sans Serif"=str(7):"SIMSUN.TTC,SimSun\0MINGLIU.TTC,PMingLiu\0MSGOTHIC.TTC,MS UI Gothic\0BATANG.TTC,Batang\0MSYH.TTC,Microsoft YaHei UI\0MSJH.TTC,Microsoft JhengHei UI\0YUGOTHM.TTC,Yu Gothic UI\0MALGUN.TTF,Malgun Gothic\0SEGUISYM.TTF,Segoe UI Symbol" "Lucida Sans Unicode"=str(7):"SIMSUN.TTC,SimSun\0MINGLIU.TTC,PMingLiu\0MSGOTHIC.TTC,MS UI Gothic\0BATANG.TTC,Batang\0MSYH.TTC,Microsoft YaHei UI\0MSJH.TTC,Microsoft JhengHei UI\0YUGOTHM.TTC,Yu Gothic UI\0MALGUN.TTF,Malgun Gothic\0SEGUISYM.TTF,Segoe UI Symbol" ```wineboot –update 后的表现
在 Wine 11.22 中实测,执行 wineboot --update 后,各项表现如下:
| 配置项 | 更新后的值 |
|---|---|
WindowMetrics 中的六项字体 |
保留自定义值 |
MS Shell Dlg |
保留自定义值 |
MS Shell Dlg 2 |
恢复为 Tahoma |
自定义 FontLink\SystemLink |
保留自定义值 |
区域代码页变化时,MS Shell Dlg 和 SystemLink 会重新生成。统一各启动器的 locale,例如始终使用 zh_CN.UTF-8,可以让配置保持稳定。
MS Shell Dlg 2 恢复为 Tahoma 后,可以单独设回目标字体:
wine reg add 'HKLM\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes' \
/v 'MS Shell Dlg 2' /t REG_SZ /d 'Microsoft YaHei UI' /f
新建 Wine 前缀时,重新导入需要的 .reg 即可。
GTK 默认配置
GTK 会从 WindowMetrics.MessageFont 读取默认 UI 字体。保持 Pango 默认的 win32 后端即可,通常直接运行:
wine live-photo-conv-gtk
GSK_RENDERER 用于选择 GTK 的场景绘制器,字体设置使用前面的注册表配置即可。
小结
- 对话框使用
FontSubstitutes。 - 标准 UI 和 GTK 默认字体使用
WindowMetrics。 Tahoma等字体的中文回退使用FontLink\SystemLink。
按实际场景导入相应文件即可,需要还原时,导入各节附带的恢复用 .reg。
赞赏本文
| 支付宝 | 微信支付 |
|---|---|
![]() |
![]() |

