vufa/deepin-wine-wechat-arch

点击小程序就崩溃,但是deepin下运行无此问题

abcfy2 opened this issue · 16 comments

image

看deepin是使用deepin-wine6-stable运行的,在我机器上无论用deepin-wine5运行还是deepin-wine6-stable运行的都会崩溃。

桌面KDE,操作系统Manjaro

对比了下,deepin下运行并不会出现这样的错误:

2022-01-22 21:01:12: basic_code_modules.cc:73: ERROR: Module rsaenh.dll could not be stored
2022-01-22 21:01:12: basic_code_modules.cc:73: ERROR: Module api-ms-win-downlevel-shell32-l1 could not be stored
2022-01-22 21:01:12: basic_code_modules.cc:73: ERROR: Module api-ms-win-downlevel-shell32-l1 could not be stored
2022-01-22 21:01:12: basic_code_modules.cc:73: ERROR: Module rsaenh.dll could not be stored

疑似arch下的相关依赖似乎被破坏了有关系,需要debug找一下

刚发现也遇到同样的问题,另外问下你能够点击左下角的更多->设置吗,我点击完更多后,那个黑色的小窗口刚弹出来就消失了...

那个问题在AUR有人提过,解决方案就是托盘右键-设置,那个可以点

vufa commented

v3.5.0.46-2 修复了小程序和查看公众号文章功能

小程序目前能点开了,不过中文字体全成方块了:
image

https://blog.csdn.net/mhlwsk/article/details/51919916

用这个方案解决了,改了下wine中的字体映射:

WINEPREFIX=~/.deepinwine/Deepin-WeChat/ deepin-wine6-stable regedit zh.reg
vufa commented

@abcfy2 我测试了提到的方法,没有效果;关于字体映射,deepin打包的注册表文件中已经设置好了备选字体:

user.reg

"NSimSun"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"
"PingFang SC"=str(7):"Noto Sans CJK SC\0WenQuanYi Micro Hei\0"
"PingFangSC-Medium"=str(7):"Noto Sans CJK SC\0WenQuanYi Micro Hei\0"
"PingFangSC-Regular"=str(7):"Noto Sans CJK SC\0WenQuanYi Micro Hei\0"
"PingFangSC-Semibold"=str(7):"Noto Sans CJK SC Bold\0WenQuanYi Micro Hei\0"
"PMingLiU"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"
"Roboto-Regular"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"
"SimHei"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"
"SimKai"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"
"SimSun"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"

好像是映射有问题,注释掉user.reg这一行

#"Microsoft YaHei"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"

已经能显示绝大多数中文了,不过title的字体还是方块,应该是其他字体的映射问题。我得再对照下那个导入的注册表,看看还替换了哪些字体

image

知道了,还有这一行

#"SimSun"=str(7):"Noto Sans CJK SC Regular\0WenQuanYi Micro Hei\0"

不过似乎直接注释没用,下次启动wine还会加回来,得在WINEPREFIX=~/.deepinwine/Deepin-WeChat/ deepin-wine6-stable regedit 中打开 HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements 删掉 SimSun这个键值

奇怪的是这两种字体我的系统都有,但是这些键值在我的系统就会造成字体方块,微信主程序没问题,就是小程序字体显示不出来:

$ fc-list | grep -i 'wenquanyi'
/usr/share/fonts/wenquanyi/wqy-microhei/wqy-microhei.ttc: 文泉驿微米黑,WenQuanYi Micro Hei,文泉驛微米黑:style=Regular
/usr/share/fonts/wenquanyi/wqy-microhei/wqy-microhei.ttc: 文泉驿等宽微米黑,WenQuanYi Micro Hei Mono,文泉驛等寬微米黑:style=Regular
$ fc-list | grep -i 'noto sans cjk'
/usr/share/fonts/noto-cjk/NotoSansCJK-Light.ttc: Noto Sans CJK JP,Noto Sans CJK JP Light:style=Light,Regular
/usr/share/fonts/noto-cjk/NotoSansCJK-DemiLight.ttc: Noto Sans CJK HK,Noto Sans CJK HK DemiLight:style=DemiLight,Regular
/usr/share/fonts/noto-cjk/NotoSansCJK-Medium.ttc: Noto Sans CJK KR,Noto Sans CJK KR Medium:style=Medium,Regular
/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc: Noto Sans CJK SC:style=Regular
/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc: Noto Sans CJK TC:style=Regular
/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc: Noto Sans CJK JP:style=Regular
/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc: Noto Sans CJK KR:style=Regular
/usr/share/fonts/noto-cjk/NotoSansCJK-Regular.ttc: Noto Sans CJK HK:style=Regular

arch kde下更新v3.5.0.46-2之后,打开小程序和公众号文章仍然会报错,删除WINEPREFIX重新构建安装无法解决问题
Screenshot_20220204_180413

@sklynic 试试把可选依赖中的noto-sans-cjk装了。我发现deepin-wine6替换的字体中有noto sans cjk字体,但是这个字体一旦删掉之后就会出错。即使把HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements下面所有的键值都删了一样出错。

单独装回来还没用,得重启之后才正常

vufa commented

noto-fonts-cjk 在某些情况下可能会显示为日文字形,具体参照 ArchWiki,可以只安装 cjk 中的简体中文字体(AUR: noto-fonts-sc):

yay -S noto-fonts-sc

安装noto-fonts-cjk之后微信报错的问题解决了
字体显示为方框的话补全一部分字体也可以解决

可能deepin-wine默认设置的那些replacement还不够

image

还是有一些字体会显示方块,回头有时间了研究下得改哪些字体