wine 版本要求,越新越好,我用的 1.7.55,目前最新是1.8rc2。
删除或者备份你的 ~/.wine,如果你之前运行过 wine 的话。因为涉及到少量配置,尽量不要让以前的环境干扰你。
配置 Wine运行 winecfg,在“应用程序”页签底部,“Windows版本”,选择为"8.1"。8.0可能也是可以的,但我选的是8.1。
设置为 windows 8.1,打开所有外部链接,比如 qq 空间等,会使用内置的 IE 浏览器(gecko win32 引擎)。如果不喜欢这个行为,可以用 winecfg 修改为"Windows XP",增加一个 QQProtect.exe 设置,将其单独设置为 "Windows 8.1" 即可。
安装 QQ 轻聊版 下载安装下载 QQ7.7Light.exe,有官方去广告版我们就用官方去广告版好了。去官方网站下载。别人做的我信不过。
安装命令:WINEDEBUG=-all wine ./QQ7.7Light.exe
加 WINEDEBUG=-all 的目的是避免安装过程中的各种调试信息和 warning 信息,因为没必要看。
耐心等待,直到安装完成。(最后的组件注册时间会比较长,耐心等待)。安装过程无任何注意事项。
安装完成,QQ 登录窗口出现,先退出即可,因为这时候是无法输入的(我们需要替换几个 DLL 才行)。
替换 DLL首先下载 DLL :riched20.dll 和 iphlpapi.dll。
然后替换 DLL:
cd.wine/drive_c/windows/system32
mv iphlpapi.dll iphlpapi.dll.bak
mv riched20.dll riched20.dll.bak
将下载的两个dll拷贝到此处。
修改注册表vi~/.wine/user.reg
添加:
[Software\\Wine\\DllOverrides]14473250776869640
#time=1d11d37208b6b08
"*iphlpapi"="native"
"*riched20"="native,builtin"
"*qcap"=""
"txplatform.exe"=""
"txupd.exe"=""
说明禁用 qcap 的原因是“禁用本地摄像头”(如果有的话),因为 wine 目前的摄像头处理跟 QQ 所需要调用的接口仍有差距,本地摄像头打开会崩溃,结果是视频聊天时如果使用了本地摄像头会崩溃。禁用后,虽然不能使用本地的视频,但远程的视频可以正常使用。这个问题,可以通过修改wine的代码来搞定。(有时间再搞吧)。
替换 riched20.dll,是为了让“登录对话框可以输入”。
替换 iphlpapi.dll,是避免登录后的崩溃退出。
禁用 txplatform.exe,是因为这个进程在 wine QQ 退出后不退出,对于 Windows 倒是无所谓,对于 Linux 来说,这意味着后台跑着一堆 wine 进程。
禁用 txupd.exe,是因为它在后台定期检查更新时会偶发崩溃,不影响使用,但总弹“wine 崩溃对话框”也是不好的。
替换字体如果不使用 SimSun 字体,其实没必要使用 simsun,更没必要使用什么 CoreFont
wine 的字体位于 /usr/share/wine/fonts/ 我只保留了 DejaVu 系列 ttf 字体和 SourceHanSansCN-Normal.otf,对于中文环境来说已经足够了。
因为 Windows 下的软件字体调用比较乱,有时候会 fallback 到 SimSun 或者“宋体”,替换的目的是“当软件请求宋体时,使用我们的替代字体”,这可以解决到几乎所有的"中文方框问题"。如果不做替换(也没有使用 simsun),qq 的某些界面字体可能会显示成“方框”。
替换方法是:
找到 ~/.wine/user.reg 中的 [Software\\Wine\\Fonts\\Replacements],如果没有就自己加入。
[Software\\Wine\\Fonts\\Replacements]14488560281650250
#time=1d12b23a623844a
"NSimSun"="\x601d\x6e90\x9ed1\x4f53 CN Normal"
"SimSun"="\x601d\x6e90\x9ed1\x4f53 CN Normal"
"\x5b8b\x4f53"="\x601d\x6e90\x9ed1\x4f53 CN Normal"
"\x65b0\x5b8b\x4f53"="\x601d\x6e90\x9ed1\x4f53 CN Normal"