Skip to content

vufa/deepin-wine-wechat-arch

Repository files navigation

在 Archlinux 及衍生发行版上运行微信(WeChat)

WeChat Version AUR Version GitHub Release GitHub Issues

Deepin 打包的微信容器(com.qq.weixin.deepin)移植到 Archlinux,包含定制的运行脚本,微信安装包替换为官方最新

⚠️ deepin-wine-wechatv3.5.0.46-2 开始,默认使用 AUR 仓库 deepin-wine6-stable,不再依赖 wine,可以进行一些清理操作来保持系统整洁,具体参照: wine/deepin-wine 2.x 迁移

安装

deepin-wine-wechat依赖Multilib仓库中的一些 32 位库,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

保存后执行

sudo pacman -Sy

⚠️ 注意:由于新版微信可能需要 wine 还没有实现的一些 win api,这会导致一些功能不可用,安装前先根据兼容性记录选择一个合适的版本

💡 以下三种安装方式效果相同,选择一种即可

从 AUR 安装

已添加到 AUR deepin-wine-wechat,可使用 yayyaourt 安装:

yay -S deepin-wine-wechat

用安装包安装

GitHub Action 在 Docker 容器 countstarlight/makepkg 中自动构建的 ArchLinux 安装包

GitHub Release 页面下载后缀为 .pkg.tar.xz.pkg.tar.zst 的安装包,使用pacman安装:

sudo pacman -U #下载的包名

.md5 文件用于校验包完整性:

md5sum -c *.md5

本地打包安装

 git clone https://github.com/vufa/deepin-wine-wechat-arch.git

 cd deepin-wine-wechat-arch

 makepkg -si

用上述三种安装方式之一安装完成后,运行应用菜单中创建的 WeChat 快捷方式,首次运行会用 WeChat 的安装包进行安装

⚠️ 注意:安装微信时不建议修改安装路径,如果修改默认路径,要对应修改 deepin-wine-wechat 的启动脚本(/opt/apps/com.qq.weixin.deepin/files/run.sh):

EXEC_PATH="c:/Program Files/Tencent/WeChat/WeChat.exe"

改为修改后的安装路径,否则只有安装后第一次能够运行

⚠️ 注意:登录后请在设置里关闭微信的自动更新,微信启动时会检查更新并加载自动更新程序,由于默认屏蔽了微信的自动更新程序,会导致找不到更新程序而不能启动

设置

dpi,系统版本,目录映射等可以在 winecfg 进行设置,打开 winecfg 的命令为:

/opt/apps/com.qq.weixin.deepin/files/run.sh winecfg

兼容性记录

⚠️ 注意:所有版本的摄像头均不可用

微信版本 wine 兼容性 备注 deepin-wine 兼容性 备注
3.9.0.28-2~ \ \ \ 6.0.0.42-1 部分 截图不可用,内置浏览器出现问题(#225)
3.8.0.41~3.8.1.26 \ \ \ 6.0.0.39-1 部分 截图不可用,内置浏览器出现问题(#225)
3.7.0.30~3.7.6.44 \ \ \ 6.0.0.24-1 部分 截图和表情包不可用,内置浏览器出现问题(#225)
3.5.0.46~3.7.0.30 \ \ \ 6.0.0.24-1 部分 小程序和公众号可用,截图(#192)和表情包不可用(#177)
3.3.0.93~3.5.0.46 \ \ \ 5.0.16-1 支持
3.2.1.141~3.2.1.154 6.6 截图功能不可用:#87 5.0.16-1 支持
3.2.1.127 6.5 部分 群聊闪退&截图功能不可用:#87 5.0.16-1 支持
3.1.0.41~3.1.0.72 5.22~6.0 部分 截图功能不可用:#73 5.0.16-1 支持
3.0.0.57 5.22 不支持 微信安装程序不能启动:#92 5.0.16-1 支持
3.0.0.57 5.19 支持 2.18_24-3 支持
2.8.0.106~2.9.5.56 4.19~5.13 部分 发送图片有问题: #42 2.18_22-3 部分 发送图片有问题: #42
2.7.1.82~2.7.1.88 4.19+ 支持
2.7.1.82~2.7.1.88 4.17~4.18 部分 不能使用中文输入法 2.18_18-2 不支持 闪退
2.6.8.65 4.16 支持 2.18_18-2 支持

切换到 deepin-wine

⚠️ deepin-wine-wechatv3.5.0.46-2 开始,默认使用 AUR 仓库 deepin-wine6-stable,无需再进行任何切换操作,对于之前的版本,可以查看旧版 README

自动切换(推荐)

对于之前的版本,可以查看旧版 README

wine/deepin-wine 2.x 迁移

更新到 deepin-wine-wechat v3.5.0.46-2 及之后的版本后,依赖变更为 deepin-wine6-stable

如果此时没有其他应用在使用 wine, deepin-wine 2.xdeepin-wine5,就可以放心的卸载 wine, deepin-wine 2.xdeepin-wine5 及其依赖:

# 卸载 deepin-wine 2.x (如果有)
sudo pacman -S lib32-freetype2 #用原版替换lib32-freetype2-infinality-ultimate
sudo pacman -Rns deepin-wine xsettingsd # 卸载 deepin-wine 2.x

# 卸载 deepin-wine5 (如果有)
sudo pacman -Rns deepin-wine5

# 卸载 wine (如果有)
sudo pacman -Rns wine wine-mono wine-gecko

同时,由于 deepin 的打包中不再包含 deepin-wine-helper,现改为使用 AUR 仓库deepin-wine-helper,可以删除之前的 deepin-wine-helper

rm -rf $HOME/.deepinwine/deepin-wine-helper

卸载

无论用何种方式安装,卸载都是:

sudo pacman -Rns deepin-wine-wechat

卸载的同时会删除用户目录下的整个 WINEPREFIX 环境,路径为:~/.deepinwine/Deepin-WeChat

微信在本地保存的数据不会被删除,如保存在用户文档下的数据(默认:~/Documents/WeChat Files)

常见问题及解决

中文字体显示为方框/显示模糊

deepin-wine-wechat 的字体文件夹在:$HOME/.deepinwine/Deepin-WeChat/drive_c/windows/Fonts

经测试将 微软雅黑 伪装成 宋体(simsun) 的显示效果最好,具体可以参照 bbs.deepin.org,将 fake_simsun.ttc 放到字体文件夹

小程序中字体显示为方框

参照 deepin-wine-wechat-arch#186

可以安装 deepin-wine-wechat 的可选依赖 noto-fonts-sc(只包含 noto-fonts-cjk 中的简体中文字体):

yay -S noto-fonts-sc

或安装 noto-fonts-cjk 并参照ArchWiki进行配置

不能截图

对于之前的版本,可以查看旧版 README

高分辨率屏幕支持

参照设置打开 winecfg ,在选项卡 Graphics 中修改 dpi,如 修改为192

💡 这一修改会在更新或重装后被重置,如果要在更新后保留 dpi 设置,可以添加环境变量

根据 deepin-wine-wechat-arch#173,由abcfy2提供的方法

编辑 /etc/environment,添加:

DEEPIN_WINE_SCALE=1.25

1.25 为缩放比例,计算方法和其他注意事项参照 deepin-wine-wechat-arch#173(comment)

GNOME 桌面上的托盘图标

安装 GNOME 插件: AppIndicator and KStatusNotifierItem Support

消除阴影边框

对于之前的版本,可以查看旧版 README

唤出已运行的 WeChat 窗口

方法1

运行命令:

/opt/apps/com.qq.weixin.deepin/files/run.sh -w

可以参考 deepin-wine-wechat-arch#96deepin-wine-wechat-arch#263 将该命令存入脚本并添加到全局快捷键中,方便使用

方法2

thep0y 提供

点击图标时如果已有正在运行的实例会导致错误的 kill,原因是/opt/deepinwine/tools/kill.sh中:

get_tray_window()
{
    # get_tray_window 是一个基于 python2 写的脚本,
    # python2 已是被扔进历史垃圾堆的产物,这个垃圾在
    # debian 10 中是关键组件,但在 Archlinux 中却
    # 没有必要再安装这个垃圾。
    $SHELL_DIR/get_tray_window | grep window_id: | awk -F: '{print $2}'
}

我们需要安装一个依赖:

sudo pacman -S dbus-python

再将脚本/opt/deepinwine/tools/get_tray_window内容修改成如下代码:

#!/usr/bin/env python

def get_tray_window():
    try:
        import dbus
    except ImportError:
        return False

    bus = dbus.SessionBus()
    traymanager = bus.get_object("com.deepin.dde.TrayManager", "/com/deepin/dde/TrayManager")

    windows = traymanager.Get("com.deepin.dde.TrayManager","TrayIcons")
    str="window_id:"
    for i in range(len(windows)):
        str += '{:#x} '.format(windows[i])

    print(str)

if __name__ == "__main__":
    get_tray_window()

保存退出后,点击图标就不会再退出原实例,而是会唤出原实例窗口了。

感谢

更新日志

2023
  • 2023-02-23 WeChat-3.9.0.28
  • 2023-01-16 WeChat-3.8.1.26
2022
  • 2022-11-30 WeChat-3.8.0.41
  • 2022-09-06 WeChat-3.7.6.44
  • 2022-08-20 WeChat-3.7.6.29
  • 2022-08-20 WeChat-3.7.6.24
  • 2022-08-17 WeChat-3.7.5.31
  • 2022-07-21 WeChat-3.7.5.23
  • 2022-06-09 WeChat-3.7.0.30
  • 2022-06-02 WeChat-3.7.0.29
  • 2022-03-20 WeChat-3.6.0.18 3.4.0.38deepin6
  • 2022-02-03 WeChat-3.5.0.46 3.4.0.38deepin4
  • 2022-01-27 WeChat-3.5.0.46
  • 2022-01-03 WeChat-3.4.5.45
2021
  • 2021-12-11 WeChat-3.4.5.27
  • 2021-12-04 WeChat-3.4.0.54
  • 2021-11-12 WeChat-3.4.0.38 3.2.1.154deepin14
  • 2021-10-21 WeChat-3.4.0.38
  • 2021-08-29 WeChat-3.3.5.50
  • 2021-08-25 WeChat-3.3.5.42 3.2.1.154deepin13
  • 2021-08-13 WeChat-3.3.5.42
  • 2021-08-08 WeChat-3.3.5.34
  • 2021-07-05 WeChat-3.3.0.115
  • 2021-06-21 WeChat-3.3.0.93
  • 2021-05-07 WeChat-3.2.1.154 3.2.1.154deepin8
  • 2021-04-23 WeChat-3.2.1.154
  • 2021-04-19 WeChat-3.2.1.151
  • 2021-04-18 WeChat-3.2.1.141
  • 2021-04-02 WeChat-3.2.1.127
  • 2021-01-29 WeChat-3.1.0.72
2020
  • 2020-12-29 WeChat-3.1.0.41
  • 2020-11-26 WeChat-3.0.0.57 2.9.5.41deepin7
  • 2020-10-16 WeChat-3.0.0.57
  • 2020-07-20 WeChat-2.9.5.56
  • 2020-07-02 WeChat-2.9.5.41
  • 2020-05-10 WeChat-2.9.0.123
  • 2020-04-24 WeChat-2.9.0.114
  • 2020-04-20 WeChat-2.9.0.112
  • 2020-03-08 WeChat-2.8.0.133
  • 2020-02-10 WeChat-2.8.0.121
  • 2020-01-20 WeChat-2.8.0.116
  • 2020-01-10 WeChat-2.8.0.112
  • 2020-01-04 WeChat-2.8.0.106
2019
  • 2019-11-07 WeChat-2.7.1.88
  • 2019-10-23 WeChat-2.7.1.85
  • 2019-10-19 WeChat-2.7.1.82
  • 2019-07-25 WeChat-2.6.8.65
  • 2019-06-02 WeChat-2.6.8.52
  • 2019-05-29 WeChat-2.6.8.51
  • 2019-04-03 WeChat-2.6.7.57
  • 2019-01-03 WeChat-2.6.2