TIM,WeChat[【Deepin or Docker】 on Ubuntu18.04
使用Deepin或Docker
Deepin TIM,WeChat
- 安装
首先将已有的deepin清理干净,并最好删除~/.deepwine的文件夹
$ sudo apt-get --purge remove deepin.com*
如果提示E: Unable to locate package deepin....,可以参考apt卸载安装包,提示Unable to locate...
安装deepwine(这个是可以安装最新2.6.8版deepin-WeChat的)
$ git clone https://gitee.com/swjevergreen/Deepin-Wine-for-Ubuntu.git
$ cd ~/Downloads/deepin-wine-for-ubuntu/
$ ./install.sh
TIM和WeChat下载:https://mirrors.aliyun.com/deepin/pool/non-free/d,其中的deepin.com.qq.office,deepin.com.wechat
安装.deb文件
$ sudo dpkg -i deepin.com.qq.office.....deb
$ sudo dpkg -i deepin.com.wechat.....deb
- 问题解决
1.英文环境下WeChat中文为方框解决:
#1.添加字体
$ cp msyh.ttc ~/.deepinwine/Deepin-WeChat/drive_c/windows/Fonts
#2.修改系统注册表
$ gedit ~/.deepinwine/Deepin-WeChat/system.reg
#修改以下两行
"MS Shell Dlg"="msyh"
"MS Shell Dlg 2"="msyh"
#3.字体注册
$ gedit msyh_config.reg
#内容添加
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"="msyh.ttc"
"Microsoft Sans Serif"="msyh.ttc"
"MS Sans Serif"="msyh.ttc"
"Tahoma"="msyh.ttc"
"Tahoma Bold"="msyhbd.ttc"
"msyh"="msyh.ttc"
"Arial"="msyh.ttc"
"Arial Black"="msyh.ttc"
#注册
$ WINEPREFIX=~/.deepinwine/Deepin-WeChat deepin-wine regedit msyh_config.reg
#4.重启WeChat
操作完后,TIM的文字也会显示正常了,因为他是将字体链接到注册表里,相当于公用了。如果不行,就仿照着对tim做一遍上述操作就可以了。
2. WeChat中间的黑框解决
方法一:从文件管理器中把Windows中C:/programmfiles(x86)/tencent/下的WeChat复制到下面路径中
~/.deepinwine/Deepin-WeChat/drive_c/Program Files/Tencent
这还相当于升级了一次WeChat(如果你Windows中是最新版)
*这里我出了问题后又重新替换了一遍,不过替换后WeChat会闪退(没替换不会,不过有黑框),解决:执行下面3里的那一句,将函数库(Libraries)中riched20改为內建先于原装(built then native)即可
原因是Windows那边的WeChat又升级了,升级到2.9.5了,重新装了一个2.9.0版本,再copy过来就没问题
方法二:随便找个好友,输入666,弹出可选表情后黑色方块就会没有了,就是每次启动都要来一遍;并且还有一个只有一个点的窗口
3. TIM和WeChat字号太小
$ env WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" /usr/bin/deepin-wine winecfg
执行上面的命令,可以打开wine的控制界面,在Graphic里面可以修改字号大小,我使用为120dpi。
修改TIM字号只需要将命令中改为Deepin-TIM
4. 添加系统托盘(否则虽然×掉了WeChat和wine,但来信息了还是有提示音(可能在后台),但是又找不到它,只能重新登录一遍)
$ sudo apt install gnome-shell-extension-top-icons-plus #安装后去gnome-tweak-tool打开top icons plus插件 $ sudo apt install chrome-gnome-shell
访问https://extensions.gnome.org/extension/1031/topicons/,打开右上方按钮为ON即可,可能还要重启系统才会生效
5. TIM提示安装Flash、不显示聊天图片、无法下载群文件
安装Flash可以忽略
后面两个问题可以通过禁用ipv6或者在登录界面右上角设置http或socket5代理解决(你得先有个可用的代理),下面是禁用ipv6的解决
$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 $ sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 $ sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1
重启TIM
Docker QQ,TIM,WeChat
参考:天泉证道
docker客户端给docker守护进程发送命令,docker守护进程从远端的仓库中获取镜像,使用镜像创建一个容器,之后客户端就可以使用命令操作这个容器。这个镜像就是把一个应用除内核外的所有运行环境打包,所以它的移植性非常好。
这个就相当于安装了一个管理器Docker(类似wine),之后从远程获得镜像容器到本地(deepin要自己下载TIM,WeChat的deb包,并安装),之后直接操作这个容器即可(deepin只是作为一个平台,后续相关性不大)
qq:office就是TIM,qq:latest是qq
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common # 安装一些必备包 $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 将官方Docker存储库的GPG密钥添加到系统 $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 这里将参考中的debian改为ubuntu $ sudo apt update $ sudo apt install docker-ce # 安装社区版 $ sudo systemctl status docker # 查看状态,为active即在运行 $ sudo usermod -aG docker uername # 将user加入docker group中,就可以直接用docker命令而不必sudo docker了 $ docker pull bestwu/qq # pull qq镜像到本地,TIM就是bestwu/qq:office $ docker pull bestwu/wechat $ xhost + # 提示access control disabled, clients can connect from any host即可 $ docker run -d --name qq --device /dev/snd/ \ # 第一次执行,创建容器,并启动qq -v /tmp/.X11-unix:/tmp/.X11-unix \ -v $HOME/TencentFiles:/TencentFiles \ -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 VIDEO_GID=`getent group video | cut -d: -f3` \ -e GID=`id -g` \ -e UID=`id -u` \ bestwu/qq # 第一次要执行run,创建容器 $ docker run -d --name wechat --device /dev/snd/ \ -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 VIDEO_GID=`getent group video | cut -d: -f3` \ -e GID=`id -g` \ -e UID=`id -u` \ -e DPI=125 bestwu/wechat # DPI=125指窗口放大为原始的125% $ docker ps -a # 查看有哪些容器(Docker就像一个小系统) $ docker start wechat # 之后启动WeChat
Docker使用(和基础的Terminal命令差不多,就是要加一个前提对象docker,如docker rm qq)
注:
问题:这个TIM拉伸其部件会导致其闪退,使用docker stop tim停止该容器,然后再重新用start启动,tim将显示为拉伸后的状态(一般是拉大),不再拉伸就不会闪退了
解决:对于NVIDIA的显卡,在run中需要加上 --ipc="host",就不会有上面的闪退问题了(参见)
问题:①Docker相当于一个小操作系统,它的文件系统是上面建立的WeChatFiles,也就是只能访问这个文件夹中内容,无法访问Ubuntu中其他文件②突然发现微信中保存的文件在文件系统中搜都搜不到(之前可以看到)
解决:网上有很多挂载本机目录到容器目录的博客文章,如用--mount或-v的,但是我这里都会报错,所以选择在容器和本机文件系统之间复制文件的方法,毕竟用微信传的只是较小的文件
如我将微信上的example.pdf右键另存为,另存到路径/home/wechat/example.pdf,但是在本地文件系统中未找到/home/wechat这个路径,也搜不到这个example.pdf,但是这个文件应该是实际存在的,可以用下面方法取出
$ docker cp <containerName>:/file/path/within/container /host/path/target # cp from container to local file system $ docker cp /host/path/target <containerName>:/file/path/within/container # cp from local file system to container
$ docker cp wechat:/home/wechat/example.pdf example.pdf # cp example.pdf from container to $pwd as example.pdf (succeed)
实践证明,虽然文件系统中找不到也看不到这个example.pdf,但它确实存在,也可以进行操作