关于微信和QQ
腾讯作为一个大厂,却没有一个比较好的 linux 产品(linux-qq那个只能是个残废),我着实感到有些费解。而且听说腾讯内部对 linux 的态度不咋样(道听途说,未经求证)。希望国产操作系统这把火能早日燎原吧,让国内的大厂也重视起来 Linux 下的生态环境
我日常很少使用微信和QQ了,因为我本身就不太喜欢和人隔着屏幕交流,微信更多的是作为一个钱包来使用的。奈何现在大多数人都是使用 QQ 和微信作为交流工具,因此日常生活、工作中难免还是要用到。其实我还是比较推荐 TG 和 Singer 这两个加密聊天工具
准备工作
首先要感谢 Peter Wu 先生维护的 docker-qq 和 docker-wechat,这里是他的 Github 主页。如果用的舒服的话可以给他点个星星啊
其实在docker-qq的说明里已经详细写了,安装方法和常见报错解决。我只是做个总结,方便自己以后查看。想自己摸索的可以查看原文档,以下都是我在 Archlinux 的 Dwm 窗口管理器和 KDE 桌面尝试过的,其他系统或桌面仅供参考
- 安装
xorg-xhost
,使用xhost +
命令用于允许所有程序都可以访问 X 桌面。否则微信和QQ没有界面显示 - 安装
gnome-settings-daemon
这是 gnome 桌面的设置守护程序,deepin 是基于 gnome 改造的,因此要在非 gnome 桌面运行,必须安装守护程序,否则无法显示界面。启动命令是/usr/lib/gsd-xsettings
,让这个在后台跑就行,可以加&
或者使用nohup
或者setsid
都行,自启动可以把命令加到.xinitrc
文件中 - 安装
docker
,在systemctl
中开启 docker 服务(我在虚拟机里莫名奇妙的报错无法启动服务,等到第二天又正常了,很奇怪)
安装微信和Tim
先修改一下 Docker 的镜像源,sudo vim /etc/docker/daemon.json
本身是没有这个文件的,需要自行创建
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
我使用的是中科大的源,你也可以更换为其他镜像源
创建 docker 组sudo groupadd docker
将当前用户加入 docker 组sudo usermod -aG docker ${USER}
这是为了启动 docker 时不用sudo
,如果你喜欢用sudo docker
来启动也可以不创建不加
将当前用户加入 docker 组后需要重启 docker 服务,但个人建议最好是重启系统,不知道为什么我尝试过程中有时候要重启系统才生效
拉取 docker 镜像
docker pull bestwu/wechat #微信
docker pull bestwu/qq:office # qq冒号后面跟的是tag,office 指的就是 Tim,im 指 QQ,默认不加是 QQLight
构建容器,如果你要使用 docker-compose 则要先安装 docker-compose 然后编写 yml 文件
如果不是工作要用到 docker 我还是建议使用脚本的方法,反正构建只是第一次,之后就不用了。也不用下载 docker-compose
#!/bin/bash
docker run -d --name qq \
--device /dev/snd \
-v $HOME/TencentFiles:/TencentFiles \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e XMODIFIERS=@im=fcitx \
-e QT_IM_MODULE=fcitx \
-e GTK_IM_MODULE=fcitx \
-e DISPLAY=unix$DISPLAY \
-e AUDIO_GID=`getent group audio | cut -d: -f3` \
-e VIDEO_GID=`getent group video | cut -d: -f3` \
-e GID=`id -g` \
-e UID=`id -u` \
bestwu/qq:office
docker run -d --name wechat \
--device /dev/snd \
-v $HOME/WechatFiles:/WechatFiles \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e XMODIFIERS=@im=fcitx \
-e QT_IM_MODULE=fcitx \
-e GTK_IM_MODULE=fcitx \
-e DISPLAY=unix$DISPLAY \
-e AUDIO_GID=`getent group audio | cut -d: -f3` \
-e VIDEO_GID=`getent group video | cut -d: -f3` \
-e GID=`id -g` \
-e UID=`id -u` \
bestwu/wechat
脚本中-name
是指定容器名字,后面可以通过此名字对容器进行操作,可自行定义
脚本中-v $HOME
后面跟的是你微信和 qq 文件的存储位置,可自行定义
你也可以不写脚本,将上面两段分别复制到终端中运行即可。使用脚本的话,编写完记得给脚本添加可执行权限chmod +x filename
然后运行脚本,这个脚本会启动构建容器并启动 QQ 和 微信。然后你就可以把脚本删除了
docker 常用命令
当你 QQ 和微信都构建好了,你可以使用docker ps -a
查看当前构建的容器(如果你没有将当前用户加入 docker 组,请记得加 sudo)
第一列的CONTAINER ID
是容器的标识符,通过此标识符可以对容器进行操作,但不方便记忆,所以一般还是用容器名来进行操作
第六列是容器状态,up
表示启动,同时会显示在多久之前启动的,Exited
表示已经退出,同时会显示在多久之前退出的
docker start name
:启动指定容器
docker stop name
:停止指定容器
docker [rm|rmi] name
:两个命令都是删除指定容器,但删除后你的镜像还是在的,如果你要再次构建容器,就需要使用上面那个脚本了
docker rename oldname newname
:修改容器名
docker restart neme
:重启容器
如果要清理 docker 占用的磁盘:
可以使用
docker system prune
,删除关闭的容器、无用的数据、网络和没有构建容器的镜像。使用此命令时你要使用的 QQ 和微信一定要处于运行状态,不然就给你删除了,而且你本机中下载的 docker 镜像,如果没有构建过容器也会被删除使用
docker system prune -a
,删除关闭的容器、无用的数据、网络、没有构建容器的镜像和没有容器运行的镜像。如果你 QQ 和微信没有运行,他不仅删除你已经构建好的容器,还会连镜像一起删除Tips:使用这两个命令一定要考虑清楚
后记
还有一种方法,是搭建的 docker 里微信和 QQ 作为一种消息服务,不会有界面。然后你使用一个irc 客户端来接受传递出来的消息
这样你就可以在命令行里聊微信或 QQ 了
感兴趣的可以去看看项目地址,不过 QQ 好像已经停止维护了,就微信还可以用
这位老哥是用Perl
写的,有时间再去折腾折腾
我应该还是会慢慢扔掉微信和 QQ 吧,尽量少在电脑上使用或者不在电脑上使用,闲聊其实占据了日常生活的大半时间,如果把这些时间用来做其他的,对人生更有意义吧