写在前面:由于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-wechatDockerhttps://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 -f
docker ps -a
docker rm
然后说一说文件传递的方法。
在笑脸和剪刀中间有一个文件夹的图标,那里就可以选择文件发送,但是只能打开docker虚拟出的环境里,而不是真实的环境。
在自己的家目录下会产生一个WeChatFiles目录,docker会把该目录拉到那个虚拟环境下,所以我们只要把要发送的文件放进这个目录即可。
我们再次尝试发送文件,就能找到它了。
基于以上的知识,我们知道了可以使用WeChatFiles目录作中转,传递文件。
因为这个deepin虚拟环境是作者移植的,所以在该环境下的wechat会因为缺少字体而出现乱码,我们可以把原系统的字体给拉到deepin虚拟系统里。
把fonts目录给复制到outside目录里。
再使用GNOME插件里的Exec Bash,打开虚拟环境的终端。
然后再把刚才拉进来的字体文件放进虚拟环境下的/usr/share/fonts,再重启wechat一次就可以了。然后就会发现原本里面的乱码都显示成正常字符了。
这里感谢一下docker wechat的开发者和深度公司的wine优化工程师。