deepin-wine-wechat-arch icon indicating copy to clipboard operation
deepin-wine-wechat-arch copied to clipboard

字体发虚 / 字体渲染的 Gamma 不正确

Open czyczk opened this issue 2 years ago • 0 comments

操作系统: Manjaro KDE 与系统具体版本无关,从最初开始用(约2年前)就一直存在。

问题描述: 请各位耐心阅读。

前提: 个人偏好在高 PPI 屏幕下不使用次像素锯齿,只使用灰度抗锯齿,因此在系统中全局 (/etc/fonts/fonts.conf) 应用了 rgba = none 的规则。

<match target="font"> 
    <edit name="rgba">
        <const>none</const>
    </edit>
</match>

第一次安装 deepin-wine-wechat 时,如果系统已经按以上设置则会有下述问题。如果第一次安装时未做以上配置的,不会出现下述问题(微信中将使用次像素渲染且不再受系统配置影响)。 安装后无论如何重装 deepin-wine-wechat 都不再改变结果。

问题现象: 使用的字体并没有错误,是字体渲染的问题。在白底黑字时,字体太细(被背景侵蚀),反过来在黑底白字下,字体太粗(向背景膨胀)。至少外观上看起来像字体渲染时所用的 Gamma 值不正确的样子。

期望得到的效果:

  1. 按照 Linux 系统的字体设置(fontconfig 配置链)并使用正确的 gamma 值进行渲染 或
  2. 单独在微信中使用次像素渲染

做过的尝试: 已做过以下尝试,暂无一可解决问题。

  1. 修改 files.7z 里的 user.reg,修改里面的 "FontSmoothingGamma" 为 0x578 (1400),"FootSmoothingType" 为 0x2 (2, 使用次像素渲染)。每次启动后,~.deepinwine/Deepin-Wechat 中的 user.reg 确实是我修改后的内容,但没有效果。
  2. 直接修改注册表。如运行
/opt/apps/com.qq.weixin.deepin/files/run.sh regedit

后修改 1 中的两个键。修改可持久化,但没有效果。 3. 在运行微信时,前置环境变量 FONTCONFIG_FILE 并指定 fontconfig 配置文件,在该配置文件中,设置 rgba 为 rgb(使用次像素渲染)。从微信环境中触发打开系统中的浏览器,可确认该配置正确,但对 deepin-wine 仍然无效果。

截图: 麻烦,暂无。但如果大家不明白我在说什么,后续将附上截图。

希望得到的信息: 如果有人能提示一下 Deepin Wine 或该微信环境启动过程中,所使用的与字体配置有关的配置文件,以及从系统到 wine 环境它们被使用的顺序,或许将对我很有帮助。

czyczk avatar May 03 '22 06:05 czyczk