如何在Linux下完美wine出QQ和微信?



不少人可能遇到过这样的问题... 跟着网上教程安装wine之后,打开的程序总有千奇百怪的问题。甚至安装包的中文字体变成了方框。那么如何提升QQ和微信的wine体验呢?

一、 安装

安装wine以及QQ和微信的安装程序。

使用wine打开安装程序:
wine PCQQ2020.exe

二、 字体崩溃:

可以直接将wine需要的字体替换为系统已知字体

1. 创建一文件,命名为:fonts.reg 内容如下:
REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\FontLink\SystemLink]
"待替换字体1"="现有字体"
"待替换字体2"="现有字体"
...
值得注意的是:现有字体应该为/usr/share/fonts/文件夹下的字体文件名

2. 导入此文件到注册表,有两种方法,任选其一即可。

(1)
wine regedit
点击左上角Registry,Import Registry File,选择我们创建的文件即可。

(2)
wine regedit fonts.reg

这里提供一下我的替换文件,仅供参考:fonts.reg

我替换的现有字体为nerd fonts source code pro。Arch用户可在archlinuxcn源中下载nerd-fonts-source-code-pro。其他用户可在nerd fonts的GitHub主页自行下载安装

你也可以更换为其它中文字体

此时打开安装包,如果字体依旧为方框,可能是因为系统为非中文系统。如果不想更换系统语言,那么可以设定以中文运行wine:
env LANG=zh_CN.UTF-8 wine PCQQ2020.exe
此时,久违的中文字体应该就可以出现啦!

至于安装微信后提示的WeChatWin.dll文件缺失问题,可以如此解决:

(1). 安装32位的libldap库,可以在自己发行版的包管理器中查找一下libldap,安装即可。

(2). 下载WeChatWin.dll文件,放在~/.wine/drive_c/Tencent/WeChat/文件夹下(微信的默认安装路径),此时微信也可以正常打开了。

三、 安装后的启动


安装完成之后,每次打开都要输入诸如此类的指令:
env LANG=zh_CN.UTF-8 wine ~/.wine/drive_c/Tencent/WeChat/WeChat.exe
虽说可以将指令存为一个脚本文件然后执行,但是也是不方便,那么有没有更好的方法呢?

我的解决方法是使用dmenu

dmenu是一个X下的快速、轻量级的软件启动器,它从stdin读取任意文本,并创建一个菜单,每一行都有一个菜单项。 然后,用户可以通过方向键或键入名称的一部分来选择一个项目,该行就会被输出到stdout。 dmenu_run是 dmenu 发行版附带的包装器,可将其用作应用程序启动器。

既然dmenu可以创建菜单,那么可以根据此特性写一个脚本:
#!bin/sh
choices="QQ\n微信"
chosen=$(echo -e $choices | dmenu -p "打开程序:")
case $chosen in
    QQ)
        env LANG=zh_CN.UTF-8 wine "~/.wine/drive_c/.../QQ.exe所在位置" ;;
    微信)
        env LANG=zh_CN.UTF-8 wine "~/.wine/drive_c/.../WeChat.exe所在位置" ;;
esac


将这个脚本绑定到某个快捷键,就能完成QQ和微信的启动啦。

如果你使用的是albert或ulauncher之类,可以在~/.local/share/applications/下新建QQ.desktop和WeChat.desktop文件

例如QQ.desktop
[Desktop Entry]
Categories=Network;InstantMessaging;
Exec=env LANG=zh_CN.UTF-8 wine "~/.wine/drive_c/.../QQ.exe所在位置"
Icon=QQ
Name=WineQQ
NoDisplay=false
StartupNotify=true
Terminal=0
Type=Application