写在前面:不知道什么原因腾讯开始积极为Linux做适配,从2023年初开发了Linux版QQ,到2024年Linux wechat-beta版开始测试i,这会让国内的Linux生态大大提升。既然已经有了原生Linux的版本,那么使用wine去跑Windows版本的wechat就显得效率比较低了。
时间过得真快,距离写这篇文章已经过去了一年多,现在微信wechat都已经有了原生Linux版本,现在已经上架flathub.
flatpak install flathub com.tencent.WeChat
flatpak版本wechat的GitHub地址https://github.com/web1n/wechat-beta-flatpak由于目前腾讯只提供了Deb包,想在其他发行版上使用还得重新打包而且还有发行版验证,所以对于其他发行版而言,使用flatpak版本未必是一种坏处,该版本微信目前还没有上架flathub,因此只能使用作者提供的配置文件进行安装。
如图所示,作者已经贴心的做好了打包和安装教程,大家下载.flatpak文件,然后在.flatpak文件所在目录执行框里的代码就好。
美中不足的是该版本的微信还不能原生跑在wayland上面,如果大家使用wayland的话只能拿xwayland跑了,不过问题也不算大,腾讯推出正式版本的时候应该可以解决这个问题。
现在只是1.0版本,已经比较稳定了,目前来看是未来可期。国内的Linux生态近几年提升明显,大家不妨都来试一试,GNU/Linux的桌面端可以媲美Windows桌面了。
以下内容已经过时:
写在前面:由于TX不积极为linux作适配,导致linux版使用微信一直是个重灾区。deb系linux还好,有深度公司优化后的deepin-wine可以完美适配windows wechat,Archlinux有万能的aur可以使用。rpm系使用wechat方法就显得少得可怜,经过我的探究后,我选择了一种比较合适的做法。
GitHub - top-bettercode/docker-wechat: 微信 docker 镜像微信 docker 镜像. Contribute to top-bettercode/docker-wechat development by creating an account on GitHub.https://github.com/top-bettercode/docker-wechatDocker
https://hub.docker.com/r/bestwu/wechat/使用docker运行deepin-wine版wechat,这个版本的wechat版本比较旧,但是功能基本都有,发消息也没有什么问题。
这里我选择使用非root用户来运行docker容器,这样会更加方便合适。
sudo usermod -aG docker $USER
docker pull bestwu/wechat
docker run -d --name wechat --device /dev/snd --ipc="host"\
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME/WeChatFiles:/WeChatFiles \
-e DISPLAY=unix$DISPLAY \
-e XMODIFIERS=@im=fcitx \
-e QT_IM_MODULE=fcitx \
-e GTK_IM_MODULE=fcitx \
-e AUDIO_GID=`getent group audio | cut -d: -f3` \
-e GID=`id -g` \
-e UID=`id -u` \
bestwu/wechat
输入法这里,如果你也用fcitx5那就这么写就行;如果你用ibus,把fcitx改成ibus就好。
启动wechat
docker start wechat
这里注意一下,关闭wechat不要直接点右上角那个x,仍旧要使用docker命令来停止。
docker stop wechat
用start和stop来控制wechat的开关。
bestwu/wechat版微信专为当前版本打造,所以大家请禁用更新,有更新提示时不要更新!
如果每次都要使用docker命令来开关wechat,大家可能觉得麻烦。
那么在GNOME就有这样的插件,可以用图形界面控制docker-wechat的开关,我把链接放在这里,大家可以去试试。
Docker - GNOME Shell Extensionshttps://extensions.gnome.org/extension/5103/docker/
使用GNOME拓展管理docker容器还有一个好处:
可以查看log,在运行容器后查看日志,就能知道什么地方可能有问题。
再次提醒一下:千万不要直接点右上角的x来关闭,这样并不是关闭,一定要通过docker的方式来开关!
不想再使用的话可以删除。
docker stop wechat
docker images
docker rmi <image ID> -f
docker ps -a
docker rm <container ID>
然后说一说文件传递的方法。
在笑脸和剪刀中间有一个文件夹的图标,那里就可以选择文件发送,但是只能打开docker虚拟出的环境里,而不是真实的环境。
在自己的家目录下会产生一个WeChatFiles目录,docker会把该目录拉到那个虚拟环境下,所以我们只要把要发送的文件放进这个目录即可。
我们再次尝试发送文件,就能找到它了。
基于以上的知识,我们知道了可以使用WeChatFiles目录作中转,传递文件。
因为这个deepin虚拟环境是作者移植的,所以在该环境下的wechat会因为缺少字体而出现乱码,我们可以把原系统的字体给拉到deepin虚拟系统里。
把fonts目录给复制到outside目录里。
再使用GNOME插件里的Exec Bash,打开虚拟环境的终端。
然后再把刚才拉进来的字体文件放进虚拟环境下的/usr/share/fonts,再重启wechat一次就可以了。然后就会发现原本里面的乱码都显示成正常字符了。
--------------------------------------------------------------------------------------------------------------------------------
以上部分为之前写的,就在最近一个月前,作者对docker-wechat进行了更新
现最新版本是基于Arch Linux微信3.9.0版本的打包,功能更多,但是从目前来看,它可能出现的bug也变多了,大家想体验的可以试一试。
实际上它更加贴近系统原生wine运行wechat的体验,这里暂时不推荐用新的,还是老版的稳定许多。
docker run -d --name wechat --device /dev/snd --ipc="host"\
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v $HOME/WeChatFiles:/WeChatFiles \
-e DISPLAY=$DISPLAY \
-e XMODIFIERS=@im=fcitx5 \
-e QT_IM_MODULE=fcitx5 \
-e GTK_IM_MODULE=fcitx5 \
-e AUDIO_GID=`getent group audio | cut -d: -f3` \
-e GID=`id -g` \
-e UID=`id -u` \
bestwu/wechat
如果只是这么运行的话会很有可能是打不开的,所以还要运行作者写的一个脚本。
docker exec -it wechat bash
/opt/apps/com.qq.weixin.deepin/files/run.sh
运行之后重启docker-wechat就可以打开微信了。
这里感谢一下docker wechat的开发者和深度公司的wine优化工程师。