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

 

二. 定时自动去除边框

手动去除微信边框的难处在于,隔一段时间,微信边框又出现。我们要彻底解决这个问题,可以:

  1. 利用微信主窗口与边框的关系;
  2. 写一段python程序 ,每隔5秒钟,定时检查微信边框是否存在,存在则去除;
  3. 此程序在每次电脑启动后,手动执行一次,或者可以加入微信启动后的脚本;

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---


 

IT Pulse 的 Youtube 频道

-本站所有视频,需要连接国际互联网-