Chrome 伪窗口阻碍显示

Chrome 伪窗口阻碍显示

原始帖子

我正在运行 ubuntu 10.04,使用 openbox 窗口管理器。

最近出现了一个黑色矩形,其尺寸约为 100x200 像素,遮挡了显示屏的内容。 wmctrl -l没有列出可能导致此问题的任何原因。它出现在所有桌面上。它会捕获鼠标焦点,但xkill不会使其消失。它不会出现在 alt-tab 循环中。将窗口设置为 z 顺序中的“始终在最上面”并不能防止它们被此矩形遮挡。全屏应用和视频也被该矩形遮挡。

到目前为止,我发现唯一能够在没有这个矩形阻碍的情况下显示的东西是

  • 其他 TTY 会话,这意味着按 CTRL-ALT-F2 将提供不被矩形遮挡的控制台。
  • xlock。显示屏幕保护程序和要求输入密码时均不受此问题的影响。

我怎样才能在不终止 X 会话或任何不负责该会话的进程的情况下删除该矩形?抵抗是徒劳的吗?

更新

感谢 cYrus,我学会了如何使用它xprop来获取窗口的 PID。它的属性非常有限:

WM_HINTS(WM_HINTS):
        Client accepts input or input focus: True
        Initial state is Normal State.
        window id # of group leader: 0x2000001
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 34717614
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_POPUP_MENU
_NET_WM_USER_TIME(CARDINAL) = 354386666
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x211bf8d
WM_CLIENT_LEADER(WINDOW): window id # 0x2000001
_NET_WM_PID(CARDINAL) = 16593
WM_LOCALE_NAME(STRING) = "en_CA.utf8"
WM_CLIENT_MACHINE(STRING) = "XXXXXX"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified location: 0, 0
        program specified minimum size: 274 by 156
        program specified maximum size: 274 by 156
        window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "google-chrome", "Google-chrome"
WM_ICON_NAME(STRING) = "google-chrome"
_NET_WM_ICON_NAME(UTF8_STRING) = 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65
WM_NAME(STRING) = "google-chrome"
_NET_WM_NAME(UTF8_STRING) = 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2d, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65

给出的 PID 是我的顶级 Chrome 进程(版本 6.0.472.53,有兴趣的可以看看)。我不愿意终止该进程,因为这可能会导致我忘记我当前打开的 40 多个选项卡及其各种历史记录,所以如果有办法关闭或隐藏此窗口就太好了。不幸的是,我不太熟悉 X 属性,不知道该怎么做。

窗口类型表明它是一个弹出窗口;我猜它还没有完成这个操作。这可以解释为什么它不接受窗口焦点:即,尽管它捕获鼠标点击,但随后按下 alt-space 键会调出另一个窗口的窗口菜单。

我尝试将其类型转换为 NORMAL,但得到了

$ xprop -set _NET_WM_WINDOW_TYPE\(ATOM\) _NET_WM_WINDOW_TYPE_NORMAL
xprop: error: unsupported conversion for _NET_WM_WINDOW_TYPE(ATOM)

我怎样才能操纵这个胚胎窗口,使它不再阻碍显示?

答案1

xprop+ 单击矩形以获取一些有用的信息。


一旦你有了以下内容,你就可以终止该进程PID

$ xprop | grep -i pid
_NET_WM_PID(CARDINAL) = 14712
$ kill -KILL 14712

xprop无论如何,这应该是改变选项的正确方法_NET_WM_WINDOW_TYPE(从未尝试过):

xprop -f _NET_WM_WINDOW_TYPE 32a -set _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_NORMAL

答案2

使用

% xwininfo -tree -root

了解有哪些窗口。使用这些信息来找出给定位置是否有窗口,以及是哪一个。

答案3

我最近在 Chromium 和 KWin WM 中也遇到了类似的问题。

为了避免关闭浏览器,您可以使该窗口不可见:

  1. xprop使用+click获取窗口 ID@cYrus 提议或使用xwininfo+点击
  2. 隐藏此窗口xdotool windowunmap <ID>

PS:设置_NET_WM_WINDOW_TYPE似乎不会对其产生任何影响。

相关内容