mactype icon indicating copy to clipboard operation
mactype copied to clipboard

`Segoe UI Variable` 似乎无法替换

Open subframe7536 opened this issue 1 year ago • 20 comments

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

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

subframe7536 avatar Jan 14 '24 01:01 subframe7536

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

Lanlan-Cat avatar Jan 19 '24 17:01 Lanlan-Cat

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

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

subframe7536 avatar Jan 20 '24 04:01 subframe7536

配置都差不多吧,以前我也是一大堆替换字体,现在是直接在系统替换了雅黑,所以只保留替换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

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

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

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

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

Lanlan-Cat avatar Jan 20 '24 05:01 Lanlan-Cat

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

subframe7536 avatar Jan 20 '24 06:01 subframe7536

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

Lanlan-Cat avatar Jan 20 '24 10:01 Lanlan-Cat

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

Lanlan-Cat avatar Jan 20 '24 10:01 Lanlan-Cat

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

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

subframe7536 avatar Jan 20 '24 11:01 subframe7536

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

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

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

rickblue avatar Apr 20 '24 10:04 rickblue

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

snowie2000 avatar Apr 20 '24 10:04 snowie2000

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

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

rickblue avatar Apr 20 '24 11:04 rickblue

依旧无效😂 image

subframe7536 avatar Apr 20 '24 11:04 subframe7536

[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 avatar Apr 20 '24 12:04 rickblue

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

rickblue avatar Apr 23 '24 00:04 rickblue

并没有用😂

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

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

subframe7536 avatar Apr 23 '24 01:04 subframe7536

并没有用😂

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

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

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

rickblue avatar Apr 23 '24 03:04 rickblue