Deepin打包的微信(WeChat)容器移植到Archlinux,不依赖deepin-wine
,包含定制的注册表配置,微信安装包替换为官方最新
deepin-wine-wechat
依赖Multilib
仓库中的wine
,wine-gecko
和wine-mono
,Archlinux默认没有开启Multilib
仓库,需要编辑/etc/pacman.conf
,取消对应行前面的注释(Archlinux wiki):
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
-#[multilib]
-#Include = /etc/pacman.d/mirrorlist
+[multilib]
+Include = /etc/pacman.d/mirrorlist
注意:由于新版微信可能需要 wine
还没有实现的一些win api,这会导致一些功能不可用,安装前先根据兼容性记录选择一个合适的版本
已添加到AUR deepin-wine-wechat,可使用 yay
或 yaourt
安装:
yay -S deepin-wine-wechat
由 Travis CI 在 Docker 容器 mikkeloscar/arch-travis 中自动构建的 ArchLinux 安装包
在 GitHub Release 页面下载后缀为 .pkg.tar.xz
或 .pkg.tar.zst
的安装包,使用pacman
安装:
sudo pacman -U #下载的包名
.md5
文件用于校验包完整性:
md5sum -c *.md5
git clone https://github.com/countstarlight/deepin-wine-wechat-arch.git
cd deepin-wine-wechat-arch
makepkg -si
运行应用菜单中创建的WeChat,开始安装
注意:安装微信时不需要修改安装路径,如果修改默认路径,要对应修改 deepin-wine-wechat
的启动脚本:
/opt/deepinwine/apps/Deepin-WeChat/run.sh
env WINEPREFIX="$WINEPREFIX" WINEDEBUG=-msvcrt $WINE_CMD "c:\\Program Files\\Tencent\\WeChat\\WeChat.exe" &
改为修改后的安装路径,否则只有安装后第一次能够运行
安装完可直接启动
注意:登录后请在设置
里关闭微信的自动更新
,微信启动时会检查更新并加载自动更新程序,由于默认屏蔽了微信的自动更新程序,会导致找不到更新程序而不能启动
微信 | wine | 兼容性 | 备注 | deepin-wine | 兼容性 | 备注 |
---|---|---|---|---|---|---|
2.9.5.56 | 5.13 | 部分 | 发送图片有问题: #42 | 2.18_24-3 | 部分 | 发送图片有问题: #42 |
2.9.5.41 | 5.11 | 部分 | 发送图片有问题: #42 | 2.18_22-3 | 部分 | 发送图片有问题: #42 |
2.9.0.123 | 5.7 | 部分 | 发送图片有问题: #42 | 2.18_22-3 | 部分 | 发送图片有问题: #42 |
2.9.0.114 | 5.6 | 部分 | 发送图片有问题: #42 | |||
2.9.0.112 | 5.5 | 部分 | 发送图片有问题: #42 | |||
2.8.0.133 | 5.3 | 部分 | 发送图片有问题: #42 | |||
2.8.0.112 | 5.0-rc4 | 部分 | 发送图片有问题: #42 | |||
2.8.0.106 | 4.19 | 部分 | 发送图片有问题: #42 | |||
2.7.1.88 | 4.19+ | 支持 | ||||
2.7.1.88 | 4.18 | 部分 | 不能使用中文输入法 | |||
2.7.1.85 | 4.18 | 部分 | 不能使用中文输入法 | 2.18_18-2 | ? | |
2.7.1.82 | 4.18 | 部分 | 不能使用中文输入法 | 2.18_18-2 | 不支持 | 闪退 |
2.7.1.82 | 4.17 | 部分 | 不能使用中文输入法 | 2.18_18-2 | 不支持 | 闪退 |
2.6.8.65 | 4.16 | 支持 | 2.18_18-2 | 支持 |
deepin-wine
原版 wine
在 DDE(Deepin Desktop Environment) 上,有托盘图标无法响应鼠标事件(deepin-wine-tim-arch#21)的问题,截图功能也不可用,可以选择切换到 deepin-wine
。
注意:切换前先确保 deepin-wine
支持
根据 deepin-wine-wechat-arch#15,deepin-wine-wechat-arch#27,由 @feileb, @violetbobo, @HE7086提供的方法:
/opt/deepinwine/apps/Deepin-WeChat/run.sh -d
这会安装需要的依赖,移除已安装的微信目录并回退对注册表文件的修改
切换回 wine
:
rm ~/.deepinwine/Deepin-WeChat/deepin
如果要卸载自动安装的依赖:
sudo pacman -Rns deepin-wine xsettingsd lib32-freetype2-infinality-ultimate
deepin-wine
yay -S deepin-wine
需要安装 xsettingsd
:
根据 deepin-wine-wechat-arch#36,由Face-Smile提供的方法:
sudo pacman -S xsettingsd
修改 /opt/deepinwine/apps/Deepin-WeChat/run.sh
:
-WINE_CMD="wine"
+WINE_CMD="deepin-wine"
RunApp()
{
+ if [[ -z "$(ps -e | grep -o xsettingsd)" ]]
+ then
+ /usr/bin/xsettingsd &
+ fi
if [ -d "$WINEPREFIX" ]; then
UpdateApp
else
注意:对 /opt/deepinwine/apps/Deepin-WeChat/run.sh
的修改会在 deepin-wine-wechat
更新或重装时被覆盖,可以单独拷贝一份作为启动脚本
rm -rf ~/.deepinwine/Deepin-WeChat
deepin-wine
字体渲染发虚kde桌面参考:deepin-wine-wechat-arch#36
deepin 桌面:
yay -S lib32-freetype2-infinality-ultimate
注意:切换到 deepin-wine
后,对 wine
的修改,如更改dpi,都改为对 deepin-wine
的修改
参照切换到 deepin-wine
解决
在 winecfg
的Graphics选项卡中修改dpi,如 修改为192
对于 wine
:
env WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" winecfg
对于 deepin-wine
:
env WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" deepin-wine winecfg
使用全局截图快捷键和解决Gnome上窗口化问题,参见issue2
微信窗口不在最上方时,在其他窗口上会显示一个阴影边框
参照切换到 deepin-wine
解决,或者使用shadow.exe,在微信启动时运行,自动消除这个阴影边框
根据“用山寨方法解决wine运行微信残留阴影窗口的问题”,对原程序稍做修改编译出的 shadow.exe,源码文件为 shadow.cpp
你也可以自行编译这个程序:
# 安装windows交叉编译工具链
yay -S mingw-w64-gcc
# 编译
i686-w64-mingw32-g++ -municode -m32 -static -s shadow.cpp -o shadow
对于 v2.8.0.133-2
及之前的版本,不自带这个程序,可以自行将shadow.exe放置到 ~/.deepinwine/Deepin-WeChat/drive_c/shadow.exe
并参照run.sh在 /opt/deepinwine/apps/Deepin-WeChat/run.sh
中加入如下几行:
CallApp()
{
if [ ! -f "$WINEPREFIX/reinstalled" ]
then
touch $WINEPREFIX/reinstalled
- env WINEDLLOVERRIDES="winemenubuilder.exe=d" WINEPREFIX="$WINEPREFIX" $WINE_CMD $APPDIR/$WECHAT_INSTALLER-$WECHAT_VER.exe
+ env WINEDLLOVERRIDES="winemenubuilder.exe=d" WINEPREFIX="$WINEPREFIX" $WINE_CMD $APPDIR/$WECHAT_INSTALLER-$WECHAT_VER.exe &
else
#Support use native file dialog
export ATTACH_FILE_DIALOG=1
env WINEPREFIX="$WINEPREFIX" WINEDEBUG=-msvcrt $WINE_CMD "c:\\Program Files\\Tencent\\WeChat\\WeChat.exe" &
fi
+ # run 'shadow.exe' if process not exist
+ if [[ -z "$(ps -e | grep -o 'shadow.exe')" ]]; then
+ env WINEPREFIX="$WINEPREFIX" WINEDEBUG=-msvcrt $WINE_CMD "c:\\shadow.exe" &
+ fi
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。