去除微信窗口残留的阴影
发表于 : 2020-12-04 11:19
21.1.29更新。
最近注意到在升级微信客户端后,需要替换的窗口id有变化。在我的电脑上,下文中的‘13’需要修改为'17’,其余仍然有效。经过几次升级,阴影窗口的id尾号在‘13’和‘17’之间来回切换。不过如果不升级微信版本,就可以不用管。
===========================================================================================================================
终端下运行
边框阴影即消失。
原理:1. 微信窗口边框的阴影,其实是区别于微信主窗口的另一个窗口对象;2. 使用xdotool取消对阴影窗口的绘制,阴影即消失;3.需要获知阴影窗口的id。
注意:上面代码只是示例,其中的0x0之类的需要替换。
具体替换方法:
1. 准备工具 wmctrl,xdotool,xwininfo
2. 终端运行
确认微信的窗口id,这里称作winid1。
3. 终端运行
用鼠标点击微信边框的阴影处,具体位置是边框线靠外一点点。注意在运行命令时,要让微信窗口同时平铺在桌面,不能是被遮挡或最小化状态。点击后,终端会输出微信边框阴影窗口的id,这里称作winid2。
4. 对比winid1和winid2,会发现两者有固定的关联,并且经过测试这种关联是不变的。所以,以上替换的思路就是先获取微信主窗口的id,然后生成阴影窗口的id。
最近注意到在升级微信客户端后,需要替换的窗口id有变化。在我的电脑上,下文中的‘13’需要修改为'17’,其余仍然有效。经过几次升级,阴影窗口的id尾号在‘13’和‘17’之间来回切换。不过如果不升级微信版本,就可以不用管。
===========================================================================================================================
终端下运行
代码: 全选
xdotool windowunmap `wmctrl -l -G -p -x |grep wechat.exe.Wine |awk '{print $1}' |sed 's/^0x0/0x/;s/0b/13/'`
原理:1. 微信窗口边框的阴影,其实是区别于微信主窗口的另一个窗口对象;2. 使用xdotool取消对阴影窗口的绘制,阴影即消失;3.需要获知阴影窗口的id。
注意:上面代码只是示例,其中的0x0之类的需要替换。
具体替换方法:
1. 准备工具 wmctrl,xdotool,xwininfo
2. 终端运行
代码: 全选
wmctrl -l -G -p -x
3. 终端运行
代码: 全选
xwininfo
4. 对比winid1和winid2,会发现两者有固定的关联,并且经过测试这种关联是不变的。所以,以上替换的思路就是先获取微信主窗口的id,然后生成阴影窗口的id。