解决微信的"您已退出登录"弹框被其他窗口挡住的问题
Tofloor
poster avatar
177******61
deepin
2019-06-07 20:03
Author
本帖最后由 mokyle 于 2019-6-7 20:51 编辑

相信大家如果经常使用微信的话,很可能会碰到这个问题:
当在手机端退出电脑端微信时候,微信会弹出两个窗口.
如果这时候桌面有一个大窗口打开着,比如chrome,
那么微信的其中一个提示"您已退出微信"的窗口会被挡住,而"重新登录微信"的弹出框正常显示在最前端没有被挡住.
这时候如果点击微信的登录按钮或关闭按钮是没有反应的.必须先关闭 提示"您已退出微信"的窗口才可以正常操作微信.
比如下图. (下图中是我手动将chrome往右边挪了挪才露出来"您已退出微信"的窗口的.)




另一个问题是当点击微信托盘时候或者给微信绑定了快捷键 (配置快捷键方式参见:https://bbs.deepin.org/post/154921), 虽然微信主窗口已经打开,但是并没有显示在最上方,一样的被其他窗口比如chrome挡住了.


这两个问题大概是微信程序的问题或者wine的问题.但是我们可以使用Devil's Pie这个工具来简单解决下.
步骤:
apt install devilspie
mkdir ~/.devilspie/
写两个配置文件:
vim ~/.devilspie/微信-主窗口.ds
内容为:
; generated_rule 微信-主窗口
( if
    ( begin
        ( is ( window_name ) "微信" )
    )
    ( begin
        ( focus )
        ( println "matchWeChat" )
    )
)
vim ~/.devilspie/微信-你已退出微信.ds
内容为:
; generated_rule 微信-你已退出微信
( if
    ( and
        ( contains ( window_property "_NET_WM_STATE") "_NET_WM_STATE_SKIP_TASKBAR" )
        ( is ( window_name ) "微信" )
    )
    ( begin
        ( println "matchWeChatExit" )
        ( above )
    )
)


然后在终端运行 "devilspie" 就可以生效.

第一个配置文件的意思是,发现属于微信的窗口出现,就让窗口作为焦点.即显示在顶层.
第二个配置文件的意思是,发现属于微信的"您已推出微信"的窗口出现,就让窗口置顶显示.
为了让这个devilspie工具开机自动启动,可以安装: apt install gdevilspie. 打开安装的gdevilspie,在主界面中勾选"Start devilspie daemon automatically at login"即可.



--------------------------------------
关于devilspie的使用说明可以参考:http://www.voidcn.com/article/p-fsuwktsc-bhu.html
关于window_property的参数可以使用xprop命令获取.




Reply Favorite View the author
All Replies

No replies yet