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,但它确实存在,也可以进行操作

 

posted @ 2020-06-12 12:27  谷小雨  阅读(913)  评论(0编辑  收藏  举报