原始帖子
我正在运行 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 中也遇到了类似的问题。
为了避免关闭浏览器,您可以使该窗口不可见:
xprop
使用+click获取窗口 ID@cYrus 提议或使用xwininfo
+点击- 隐藏此窗口
xdotool windowunmap <ID>
PS:设置_NET_WM_WINDOW_TYPE
似乎不会对其产生任何影响。