Wine 安装的微信,正常聊天/发图都没问题,唯一的烦恼是,微信的边框一直都在桌面显示,除非将微信最小化。网上查阅了一些资料,Linux 中可以使用 wmctrl 获取微信窗口ID,xwininfo获取微信边框ID,然后使用 xdotool 消除微信边框。
我整理了大概有两个方法,可以去除微信边框,完全手动或者定时自动。
微信边框长这样:😄
一. 安装工具包
Ubuntu 系统安装工具包:
sudo apt install wmctrl
sudo apt install xdotool
二. 手动去除边框
1.1. 获取微信主窗口ID
#获取 WECHAT ID
wmctrl -l -G -p -x
获取微信主窗口ID:0x03e0000a,注意此ID仅仅为主窗口ID,并非阴影ID,而且每一次重启系统后,此ID会有不同。
1.2. 获取微信边框ID
执行 xwininfo 后,鼠标点击微信边框,获取微信边框ID:0x3e0001b。
边框ID与主窗口ID最大不同在于最后两位,而且基本上永远一致,我自己的电脑是1b。
1.3. 手动去除微信边框
手动去除方法中,微信主窗口ID并未用到。
# xdotool windowunmap 微信边框ID
xdotool windowunmap 0x3e0001b
二. 定时自动去除边框
手动去除微信边框的难处在于,隔一段时间,微信边框又出现。我们要彻底解决这个问题,可以:
- 利用微信主窗口与边框的关系;
- 写一段python程序 ,每隔5秒钟,定时检查微信边框是否存在,存在则去除;
- 此程序在每次电脑启动后,手动执行一次,或者可以加入微信启动后的脚本;
2.1. python 脚本参考
此脚本参考自:https://zhuanlan.zhihu.com/p/106926984
#!/usr/bin/env python3
import time
import os
while True:
time.sleep(5)
exist = os.popen("ps -ef | grep WeChat.exe")
e = exist.readlines()
if len(e) < 3:
print(e)
print("WeChat not started. Exit...")
exit()
output = os.popen("wmctrl -l -G -p -x")
s = output.readlines()
print(s)
id = ''
for item in s:
if item.find("wechat.exe.wechat.exe") != -1:
id = item.split()[0]
break
output.close()
print(id)
if id != '':
shadow = id[:-4] + "001b"
print(shadow)
os.system("xdotool windowunmap " + shadow)
else:
print("WeChat not display yet.")
2.2. python 脚本执行
#上述python脚本存放路径中执行:
./wechat_disable.py >/dev/null 2>&1 &
完美!
---End---