Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segoe UI Variable 似乎无法替换 #971

Open
subframe7536 opened this issue Jan 14, 2024 · 15 comments
Open

Segoe UI Variable 似乎无法替换 #971

subframe7536 opened this issue Jan 14, 2024 · 15 comments

Comments

@subframe7536
Copy link

subframe7536 commented Jan 14, 2024

开始菜单 和 日历页面 字体替换无法生效,各个模式均无效

image

config

[General]
Name=test
Icon=..\mactray.exe.ico,0
Text=The quick brown fox jumps over the lazy dog 天地玄黄宇宙洪荒日月盈仄辰宿列张
Align=Center

;【自动挂钩子进程】
;[0:Disable]  1:Enable
HookChildProcesses=1

;【字体微调】
;0:Normal 1:NoHinting 2:AutoHinting 3:Light+AutoHinting
HintingMode=3

;【抗锯齿方式】
;-1:Disable 0:Normal 1:Light 2:LCD(RGB) 3:LCD(GBR) 4:Light-LCD(RGB) 5:Light-LCD(GBR)
AntiAliasMode=2

;【常规体调整】
;-32:+32
NormalWeight=4

;【粗体字的调整】
;-16:+16
BoldWeight=4

;【斜体字的倾斜角度微调】
;-16:+16
ItalicSlant=0

;【只有在FontLoader=0(在下面)时此项设置才有效。建议选0,选1会占用大量内存,也没看出有什么好处。】
;0:Disable 1:Enable
UseMapping=0

;【Gamma模式开关】
;-1:关闭;0:使用设置的Gamma值(GammaValue);1:使用sRGB的Gamma值;2:不明
GammaMode=0

;【Gamma值】
;GammaMode=0的时候此项设置才有效
;sRGB ≒ 2.2 CT-Default = 1.4
;windows的cleartype的Gamma值是1.4
GammaValue=1.5

;【对比度】
;数字越大越锐利,数字越小越发虚
Contrast=1.2

;【字体轮廓】
;数字越大字体就越粗越黑
RenderWeight=1.2
; DirectWrite 支持;DirectWrite support
DirectWrite=1

;【文字边界设置】
;数字越大越强调背景(类似文字边界被侵蚀的感觉),强调背景会有中字体锐利的感觉。适当降低对比度,提高TextTuning,可以使文字周围的颜色看起来“淡一点”
;再加上RenderWeight,把这三个设置的微妙平衡调节好的话,能得到不输给Mac的效果
;0:12

;AntiAliasMode=1时,通过TextTuning分量来调节
TextTuning=0

;AntiAliasMode=2时,通过TextTuning的RGB分量来调节
TextTuningR=4
TextTuningG=4
TextTuningB=4

;【字体加粗模式】
;对NormalWeight和BoldWeight有效
;0:Weight值大时横向加粗,值小时双向加粗,主要是避免Weight值过大时,模式3中在小字号时加粗过度出现斩头的现象;
;1:总是横向加粗;
;2:总是双向加粗,也就是freetype本身的粗体渲染。
;注意:通过加大GammaValue、TextTuning的值,可以减少Weight值过大的造成的效果问题,即可以在BolderMode=2时也可以避免转接头
BolderMode=0

;【字体的载入方法】
;(注意是载入方法,不是渲染方法)
;0:用freetype载入字体
;1:用windows的绘图核心载入字体
;很多freetype的设置需要此项选0才能生效
FontLoader=0

;【字体链接】
;当FontLoader=0时
;0:什么都不做;
;1:使用注册表里的字体链接设置,通过FreeType的字符表进行查找
;2:使用注册表里的字体链接设置,使用Windows的转换函数直接查找
;当FontLoader=1时
;会保持启用的状态,但是所有字体链接的处理会交由WIN32API完成。
FontLink=2

;【字体替代】
;当FontLoader=0时
;0:什么都不做;
;1:安全替换方案(兼容性较好),根据以下FontSubstitutes的配置进行替换;
;2:完全替换方案(效果较全面,如替换后出现乱码,请尝试使用1),根据以下FontSubstitutes的配置进行替换;
;当FontLoader=1时
;会保持启用的状态,但是所有字体替代的处理会交由WIN32API完成
FontSubstitutes=1

;【让freetype处理的最大的字体尺寸,单位是像素,0的话就是全尺寸】
;交付 gdi++ 处理的最大尺寸(单位为像素)
;0-2147483647
MaxHeight=0

;【阴影设置】
;格式:水平偏移,垂直偏移,阴影深度(值越大,越浅)	
;Shadow=1,1,5

;【液晶显示器的优化配置】
;[0:None]  1:Default  2:Light  16:Legacy
LcdFilter=2

;【字体缓存、内存的设置】
LoadOnDemand=1
CacheMaxFaces=256
CacheMaxSizes=6140
CacheMaxBytes=20485760

;【强制使用某一个字体】
;无视所有其他字体,全系统的字体都会被这里设置的字体代替
ForceChangeFont=Maple UI

[DirectWrite]
;渲染模式,0=默认,1=锯齿,2=经典,3=经典自然,4=自然,5=自然对称,6=字体原型
RenderingMode=6
;Gamma值,不写则根据上面的GammaValue自动计算
GammaValue=1.5
;对比度,默认为1
Contrast=1.0
;抗锯齿程度,默认1
ClearTypeLevel=1

[Individual]
;【单独设置的字体】
;格式=Hinting, AAMode, NormalWeight, BoldWeight, ItalicSlant, Kerning
XSong=,,30,,,
XSong SimSun=,,30,,,
XSong Mono=,,30,,,
宋体=,,30,,,
新宋体=,,30,,,
华文宋体=,,30,,,
华文中宋=,,30,,,
Batang=,,30,,,
MingLiU=,,30,,,
PMingLiU=,,30,,,
PMingLiU_HKSCS=,,30,,,
MingLiU_ExtB=,,30,,,
PMingLiU_ExtB=,,30,,,
PMingLiU_HKSCS_ExtB=,,30,,,
MS Mincho=,,30,,,
MS PMincho=,,30,,,

[Exclude]
;【除外的字体】

[ExcludeModule]
;【不渲染的程序,但仍会加载DLL】


[FontSubstitutes]
;【字体替代】
;系统在调用“=”前面的字体时会忽视“=”前面的字体,而去直接调用“=”后面的字体
Microsoft YaHei=Maple UI
Microsoft YaHei Bold=Maple UI
Microsoft YaHei UI=Maple UI
Microsoft YaHei UI Bold=Maple UI
Segoe UI Variable=Maple UI
Segoe UI Variable Small Light=Maple UI
Segoe UI Variable Small Semilight=Maple UI
Segoe UI Variable Small=Maple UI
Segoe UI Variable Small Semibold=Maple UI
Segoe UI Variable Small Bold=Maple UI
Segoe UI Variable Text Light=Maple UI
Segoe UI Variable Text Semilight=Maple UI
Segoe UI Variable Text=Maple UI
Segoe UI Variable Text Semibold=Maple UI
Segoe UI Variable Text Bold=Maple UI
Segoe UI Variable Display Light=Maple UI
Segoe UI Variable Display Semilight=Maple UI
Segoe UI Variable Display=Maple UI
Segoe UI Variable Display Semibold=Maple UI
Segoe UI Variable Display Bold=Maple UI
Segoe UI=Maple UI
Segoe UI Semilight=Maple UI
Segoe UI Semibold=Maple UI
Segoe UI Black=Maple UI
Segoe UI Light=Maple UI
XXX=Maple UI
XXX Bold=Maple UI Bold
XXX Mono=Maple Code Vivid
XXX Mono Bold=Maple Code Vivid
XXX SimSun=Maple UI
XXX NSimSun=Maple UI
MS Sans Serif=Maple UI
MS Serif=Maple UI
Microsoft Sans Serif=Maple UI
Microsoft JhengHei=Maple UI
Microsoft JhengHei Light=Maple UI
Microsoft JhengHei UI=Maple UI
Microsoft JhengHei UI Light=Maple UI
Tahoma=Maple UI
Calibri=Maple UI
Verdana=Maple UI
Arial=Maple UI
Arial Black=Maple UI
Arial Narrow=Maple UI
Arial Unicode MS=Maple UI
SimSun=Maple UI
NSimSun=Maple UI
Fixedsys=Maple UI
Hiragino Sans GB=Maple UI
Lucida Grande=Maple UI
Helvetica=Maple UI
Helvetica Neue=Maple UI
Lucida Sans Unicode=Maple UI
;Heiti SC=Maple UI
;Heiti TC=Maple UI

[ExcludeSub]
javaw.exe
PPLive.exe
QQGame.exe
devenv.exe

[Experimental]
;the aggressiveness to disarm the OS protection. 
;0=do nothing
;1=remove force MS signed binary
;2=degrade Dynamic code generation protection
ArmBreaker=1

手动设置注册表后,无法打开开始菜单的搜索页面和 windows terminal

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"Segoe UI Variable (TrueType)"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Segoe UI"="Maple UI"

Windows 11 22631.3007 (23H2)

确认字体已安装
image

@Lanlan-Cat
Copy link

最新预览版注册表启动没问题啊,可以替换。都不需要手动设置注册表
PixPin_2024-01-20_01-27-29

@subframe7536
Copy link
Author

用最新预览版似乎还是不行

@Luban-No7 可以分享一下你的配置吗

@Lanlan-Cat
Copy link

Lanlan-Cat commented Jan 20, 2024

配置都差不多吧,以前我也是一大堆替换字体,现在是直接在系统替换了雅黑,所以只保留替换Segoe UI Variable,以及个别程序替换宋体和Tahoma

忘了说了,我是注册表启动,启用后,记得关机然后重新启动。

[General]
Name=鸿蒙
Icon=..\mactray.exe.ico,0

;【自动挂钩子进程】
;0:Disable;1:Enable
HookChildProcesses=1

;【字体微调】
;0:Normal;1:NoHinting;2:AutoHinting;3:Light+AutoHinting
HintingMode=1

;【抗锯齿方式】
;-1:Disable;0:Normal;1:Light;2:LCD(RGB);3:LCD(GBR);4:Light-LCD(RGB);5:Light-LCD(GBR)
AntiAliasMode=4

;【常规体调整】
;-32:+32
NormalWeight=16

;【粗体字的调整】
;-16:+16
BoldWeight=2

;【斜体字的倾斜角度微调】
;-16:+16
ItalicSlant=0

;【只有在FontLoader=0时此项设置才有效】
;建议选0,选1会占用大量内存,也没看出有什么好处。
;0:Disable 1:Enable
UseMapping=0

;【Gamma模式开关】
;-1:关闭;0:使用自定义的Gamma值;1:使用sRGB的Gamma值;2:不明
GammaMode=0

;【Gamma值,只有在GammaMode=0的时候此项设置才有效】
;Windows的cleartype的Gamma值是1.4
;sRGB=2.2;CT-Default=1.4
GammaValue=1.4

;【对比度】
;数字越大越锐利,数字越小越发虚
Contrast=1.0

;【字体轮廓】
;数字越大字体就越粗越黑
RenderWeight=1.6

;【文字边界设置】
;数字越大越强调背景(类似文字边界被侵蚀的感觉),强调背景会有中字体锐利的感觉。适当降低对比度,提高TextTuning,可以使文字周围的颜色看起来“淡一点”
;再加上RenderWeight,把这三个设置的微妙平衡调节好的话,能得到不输给Mac的效果
;0:12
;AntiAliasMode=1时,通过TextTuning分量来调节
TextTuning=0
;AntiAliasMode=2时,通过TextTuning的RGB分量来调节
TextTuningR=8
TextTuningG=8
TextTuningB=8

;【字体加粗模式】
;对NormalWeight和BoldWeight有效
;0:Weight值大时横向加粗,值小时双向加粗,主要是避免Weight值过大时,模式3中在小字号时加粗过度出现斩头的现象;
;1:总是横向加粗;
;2:总是双向加粗,也就是freetype本身的粗体渲染。
;注意:通过加大GammaValue、TextTuning的值,可以减少Weight值过大的造成的效果问题,即可以在BolderMode=2时也可以避免转接头
BolderMode=2

;【字体的载入方法】
;注意是载入方法,不是渲染方法;很多freetype的设置需要此项选0才能生效
;0:用freetype载入字体
;1:用windows的绘图核心载入字体
FontLoader=0

;【字体链接】
;当FontLoader=0时
;0:什么都不做;
;1:使用注册表里的字体链接设置,通过FreeType的字符表进行查找
;2:使用注册表里的字体链接设置,使用Windows的转换函数直接查找
;当FontLoader=1时,会保持启用的状态,但是所有字体链接的处理会交由WIN32API完成
FontLink=2

;【字体替换】
;当FontLoader=0时
;0:什么都不做;
;1:安全替换方案(兼容性较好),根据以下FontSubstitutes的配置进行替换;
;2:完全替换方案(效果较全面,如替换后出现乱码,请尝试使用1),根据以下FontSubstitutes的配置进行替换;
;当FontLoader=1时,会保持启用的状态,但是所有字体替代的处理会交由WIN32API完成
FontSubstitutes=1

;【让freetype处理的最大的字体尺寸,单位是像素,0的话就是全尺寸】
;交付 gdi++ 处理的最大尺寸(单位为像素)
;0-2147483647
MaxHeight=0

;【阴影设置】
;格式:水平偏移,垂直偏移,深色文字的阴影透明度(0-100),深色文字的阴影颜色,浅色文字的阴影透明度(0-100),浅色文字的阴影颜色
;Shadow=1,1,10,FFFFFF,30,000000
;Shadow=1,1,10,0x0,0,0x0

;【液晶显示器的优化配置】
;0:None;1:Default;2:Light;16:Legacy
LcdFilter=2

;【微调LcdFilterWeight】
;LcdFilter>0,且AntiAliasMode>-1时,该微调才生效
;这5个值分别代表文字笔划中从左到右的笔划浓度,最小为0,最大为255
;注释掉这个参数则恢复使用
;当LcdFilter=1,默认值为“16,64,112,64,16”
;当LcdFilter=2,默认值为“0,85,86,85,0”
;LcdFilterWeight=16,64,128,64,16

;【字体缓存、内存的设置】
; 较低配置的机器请不要把LoadOnDemand设为1,有死机的危险
LoadOnDemand=1
CacheMaxFaces=256
CacheMaxSizes=6140
CacheMaxBytes=20485760
EnableKerning=1

;【强制对小字体使用Hinting】
;对9号以下字体自动施加Hinting,使小字体更清晰
;此参数仅在AntiAliasMode=1、4、5时有效
;0:关闭,1:开启。默认开启
;HintSmallFont=0

;【对硬件加速的渲染支持】
;对使用DirectWrite作为硬件加速技术的软件(如IE和firefox的硬件加速)提供渲染支持开关
;0:关闭;1:开启
DirectWrite=1

[DirectWrite]
;渲染模式,0=默认,1=锯齿,2=经典,3=经典自然,4=自然,5=自然对称,6=字体原型
RenderingMode=5
;Gamma值,不写则根据上面的GammaValue自动计算
GammaValue=1.4
;对比度,默认为1
Contrast=0.6
;抗锯齿程度,默认1
ClearTypeLevel=0.4

[Individual]
;【单独设置的字体】
;格式=Hinting, AAMode, NormalWeight, BoldWeight, ItalicSlant, Kerning

[Exclude]
;【除外的字体】

[ExcludeModule]
;【不渲染的程序,但仍会加载DLL】

[FontSubstitutes]
;【字体替代】
;系统在调用“=”前面的字体时会忽视“=”前面的字体,而去直接调用“=”后面的字体
Segoe UI Variable=HarmonyOS Sans SC
Segoe UI Variable Small Light=HarmonyOS Sans SC
Segoe UI Variable Small Semilight=HarmonyOS Sans SC
Segoe UI Variable Small=HarmonyOS Sans SC
Segoe UI Variable Small Semibold=HarmonyOS Sans SC Medium
Segoe UI Variable Small Bold=HarmonyOS Sans SC Bold
Segoe UI Variable Text Light=HarmonyOS Sans SC
Segoe UI Variable Text Semilight=HarmonyOS Sans SC
Segoe UI Variable Text=HarmonyOS Sans SC
Segoe UI Variable Text Semibold=HarmonyOS Sans SC Medium
Segoe UI Variable Text Bold=HarmonyOS Sans SC Bold
Segoe UI Variable Display Light=HarmonyOS Sans SC
Segoe UI Variable Display Semilight=HarmonyOS Sans SC
Segoe UI Variable Display=HarmonyOS Sans SC
Segoe UI Variable Display Semibold=HarmonyOS Sans SC Medium
Segoe UI Variable Display Bold=HarmonyOS Sans SC Bold

[UnloadDll]
;【完全忽略的程序】
Clash for Windows.exe
Clash Verge.exe
DNF.exe
DNF60版本登录器.exe
fontview.exe
HwMdcUI.exe
MessageCenterUI.exe
PCManager.exe
Quicker.exe

[ExcludeSub]
;【排除不替换字体的程序】
;以下程序不会被进行字体热替换
Acrobat.exe
Adobe Premiere Pro.exe
EXCEL.EXE
Illustrator.exe
Photoshop.exe
POWERPNT.EXE
WINWORD.EXE

;[Experimental]
;解除操作系统保护的积极性
;0=默认,什么都不做。
;1=去掉强制ms签要求。
;2=降级动态代码生成限制;Chrome、ProcessHacker 和其他一些应用程序需要这个才能工作。
;ArmBreaker=2
;彩色字体支持
;ColorFont=0

;[Experimental@chrome.exe]
;解决某些程序错误地剪切文本底部或顶部的问题
;ClipBoxFix=1
;反色以强制 chrome 显示正确的字体颜色,此选项仅在ColorFont打开时有效
;InvertColor=0

;[General@SimSun]
;FontSubstitutes=1
;RenderWeight=1.6
;【针对Browser组的字体替换】
[FontSubstitutes@SimSun]
;替换SimSun的配置组,当FontSubstitutes>0时生效
SimSun=HarmonyOS Sans SC
;===== 配置组程序 =====
[General@chrome.exe]
Alternative=SimSun
[General@Notepad--.exe]
Alternative=SimSun
[General@PixPin.exe]
Alternative=SimSun

[FontSubstitutes@Tahoma]
;替换Tahoma的配置组,当FontSubstitutes>0时生效
Tahoma=HarmonyOS Sans SC
;===== 配置组程序 =====
[General@Everything.exe]
Alternative=Tahoma

[FontSubstitutes@ShopElf]
;替换Tahoma的配置组,当FontSubstitutes>0时生效
SimSun=HarmonyOS Sans SC
Tahoma=HarmonyOS Sans SC
;===== 配置组程序 =====
[General@ShopElf.exe]
Alternative=ShopElf

@subframe7536
Copy link
Author

感谢回复,但是还是没有生效

@Lanlan-Cat
Copy link

一样的系统,我照着换了一下都可以啊,就你那个字体
PixPin_2024-01-20_17-56-57

@Lanlan-Cat
Copy link

完整一点替换
PixPin_2024-01-20_18-32-16

@subframe7536
Copy link
Author

subframe7536 commented Jan 20, 2024

主要是换了台电脑,之前用着没啥问题

暂时放弃了,先将就着用吧😅

@rickblue
Copy link

rickblue commented Apr 20, 2024

主要是换了台电脑,之前用着没啥问题

暂时放弃了,先将就着用吧😅

到bios里把“secure boot”关了,会有惊喜。
我用的服务模式基本上都可以替换渲染。

@snowie2000
Copy link
Owner

Secure boot下很多系统应用有特殊保护无法加载第三方dll

@rickblue
Copy link

Secure boot下很多系统应用有特殊保护无法加载第三方dll

首先感谢大佬辛苦付出,mactype用了应该10年了吧!
我是通过关闭secure boot才正常替换渲染的win11(26100.1 dev)开始菜单,否则即使启用注册表模式也是无效的,关闭sb后,目前使用还没发现问题,so,先这么用着吧……

@subframe7536
Copy link
Author

依旧无效😂
image

@rickblue
Copy link

rickblue commented Apr 20, 2024

[FontSubstitutes]
Courier=JetBrains Mono
Terminal=XHei Apple Mono
SimSun=XHei Apple SimSun
NSimSun=XHei Apple NSimSun
Fixedsys=XHei Apple NSimSun
微软雅黑=MiSans Medium
Microsoft JhengHei=MiSans Medium
Microsoft JhengHei UI=MiSans Medium
Microsoft YaHei=MiSans Medium
Microsoft YaHei UI=MiSans Medium
Lucida Sans Unicode=MiSans Medium
Segoe UI=MiSans Medium

我也用的热替换,以上是我的字体替换名单。
看你的截图感觉已经渲染了,但用的好像不是微软默认字体。可以用noMeiryoUI恢复win默认字体再替换试试。

@rickblue
Copy link

又研究了下,有突破,如果启动后无法替换,可以通过在“任务管理器”中重启“explorer.exe”进程实现开始菜单、右键菜单字体替换,嫌麻烦的话可以写个脚本启动后执行重启,猜测可能是explorer.exe在mactype之前启动,造成mt无法提前注入生效?

@subframe7536
Copy link
Author

并没有用😂

@echo off
taskkill /f /im explorer.exe & start explorer.exe
exit

MacType 的加粗应该是生效的,但是字体替换没有

@rickblue
Copy link

并没有用😂

@echo off
taskkill /f /im explorer.exe & start explorer.exe
exit

MacType 的加粗应该是生效的,但是字体替换没有

黔驴技穷了,哈,估计你的系统有进程影响开始菜单字体替换。再就是发现即使打开secure boot,用重启explorer的方法也能替换开始菜单等部分,我的情况是不重启无法替换开始菜单、桌面右键菜单、资源管理器主文件夹。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants